protected function fetchController($name)
	{
		// Derive the controller class name.
		$class = $this->controllerPrefix . ucfirst($name);

		// If the controller class does not exist panic.
		if (!class_exists($class))
		{
			throw new \RuntimeException(sprintf('Unable to locate controller `%s`.', $class), 404);
		}

		// If the controller does not follows the implementation.
		if (!is_subclass_of($class, 'Joomla\\Controller\\ControllerInterface'))
		{
			throw new \RuntimeException(
				sprintf(
					'Invalid Controller. Controllers must implement Joomla\Controller\ControllerInterface. `%s`.',
					$class
				),
				500
			);
		}

		// Instantiate the controller.
		$controller = new $class($this->input);

		return $controller;
	}