private function _runModuleController($page_module){
		// execute module controller
		$view = (new $page_module['class'])->run($this->_dom);

		// set the handle variable according to this module's controller return value
		if(is_resource($view) && get_resource_type($view) == 'stream'){
			return [
				'handle' => $view,
				'type' => 'stream',
			];
		}

		if(is_object($view) && is_subclass_of($view, '\Morrow\Views\AbstractView')){
			$view->init($page_module['class']);
			return [
				'handle' => $view->getOutput(),
				'type' => 'html',
			];
		}

		if(is_string($view)){
			$handle = fopen('php://temp/maxmemory:'.(1*1024*1024), 'r+'); // 1MB
			fwrite($handle, $view);
			return [
				'handle' => $handle,
				'type' => 'string',
			];
		}

		if(is_null($view)){
			return [
				'handle' => null,
				'type' => null,
			];
		}

		if(!isset($handle)){
			throw new \Exception(__CLASS__.': The return value of a controller has to be of type "stream", "string" or a child of \Morrow\Views\AbstractView.');
		}
	}