public function registerHook($callback) {
		if( !is_callable($callback) ) {
			throw new \Exception('Callback not callable');
		}
		if( in_array($callback, $this->callbacks) ) {
			throw new \Exception('Callback already registered');
		}
		$this->callbacks[] = $callback;
		return $this;
	}