so we are passing 3 fields of func->patch here... why not just pass func or func->patch?