fix func bugs