added result_type to the arguments