Use regular hooking code for wrap action

This has several advantages
- Familiar, unified syntax
- Filename parameter can actually be used
- Not limited to bare functions; call class methods