partial function wrap