public function createClassTemplate(String $templateName, String $filename, $savePath=null, Array $templateTags)
	{
		$template = file_get_contents(__DIR__ . '/templates/' . $templateName);
		foreach($templateTags as $key => $tag) {
			if (!preg_match_all('/' . $key . '/', $template)) {
				throw new RuntimeException(sprintf('[%s] tag does not exist in template.', $key));
			}
		}

		if (!is_dir($savePath) || !is_readable($savePath)) {
			throw new RuntimeException(sprintf('[%s] directory is not readable', $savePath));
		}

		$template = str_replace(
			array_keys($templateTags),
			array_values($templateTags),
			$template
		);

		$file = $savePath . '/' . $filename . '.php';
		$handle = fopen($file, 'w+');
		fwrite($handle, $template);
		fclose($handle);

		$this->env->sendOutput(
			sprintf(
				'[%s] class has been generated and placed in [%s]',
				$templateTags['phx:class'],
				$file
			),
			'green',
			'black'
		);
	}