implemented method_thunk