finish all func before merge