feat: implement the hooks system
Add some hooks as concept