added Hooker class