added some move ctor to func::comp