private function ex(CommandInterface $cmd)
    {
        // try to run the command
        $this->shell->run($cmd);
        $output = $this->shell->getOutput();
        $returnValue = $this->shell->getReturnValue();

        // record the result
        $output = count($output) ? implode("\n", $output)."\n" : '';
        $this->result['output'] .= "$cmd\n$output";

        // return a boolean
        return 0 === $returnValue;
    }