clean code and added some g_free()