protected function doExecute(InputInterface $input, OutputInterface $output)
    {
        // Ask questions.
        if ($this->askQuestions($input, $output) == static::RETURN_ERROR) {
            return static::RETURN_ERROR;
        }

        // Prepare data.
        $data = $this->prepareData($input);
        // Pre-execute
        $this->doPreExecuteTasks($input, $output, $data);
        // Execute.
        $return = $this->executeTasks($input, $output, $data);
        // Post execute.
        $this->doPostExecuteTasks($input, $output, $data, $return);

        return $return;
    }