fix(bindings): do not allow multiple initializations of hook manager
feat(binding): catch exceptions for hook initialization
feat(binding): split hooks to individual classes, make a hook manager