Add the ability to add/remove hooks

Revamp specs to be broken out into specific areas
adds