policy based redesign of fixed_call, binary_call, unary_call