use _wrapper instead of __self___