handle hooks
only monkey patch the interface