public function addMacro(MacroInterface $macro)
	{
		if (!method_exists($macro, 'handle'))
		{
			throw new \LogicException(sprintf('%s does not have a handle method.', get_class($macro)));
		}

		$this->macros[$macro->getMethod()] = $macro;

		return $this;
	}