Hooks

* Adds :on_error hook option
* Adds :timeout option
* Adds documentation