is_callable removed result_of approach