moved function signature generation