Improve the OOP codebase
Introducing new Hook class