Refactoring
Support hook dependencies
Documentation
More tests