protected function createRunnable()
	{
		$runnable = new StdClass();
		$response = $this->cmd->question('1. Runnable class name? [required]');
		if (strlen($response) < 3) {
			return $this->env->sendOutput('runnable class name is required.', 'red');
		}
		$runnable->name = rtrim($response);

		$response = $this->cmd->question('2. Runnable class location? [optional]');
		if (strlen($response) < 3) {
			$response = null;
		}

		$response = trim($response);
		if ($response !== '' && !is_dir($response)) {
			return $this->cmd->error(sprintf('[%s] is not a directory', $response));
		}
		$runnable->location = $response;

		$response = $this->cmd->question('3. Runnable class namespace? [optional]');
		$runnable->namespace = rtrim($response);

		$response = $this->cmd->question('4. Runnable command id? [required]');
		if (strlen($response) < 3) {
			return $this->cmd->error('runnable command id is required.');
		}
		$runnable->id = rtrim($response);

		$response = $this->cmd->question('5. List of runnable commands? [optional] [e:g create-route:4(number of arguments)]');
		$runnable->runnableCommands = rtrim($response);

		$this->env->sendOutput('Creating runnable...' . $this->env->addNewLine(), 'green');
		if($this->buildRunnable($runnable)) {
			return $this->env->sendOutput('Runnable class has been created.', 'green');
		}

		return $this->cmd->error('Failed to create runnable class.');
	}