protected function launchCommand($command, array $arguments)
    {
        $command = implode(
            ' ',
            array_merge(
                array($command),
                array_map('escapeshellarg', $arguments)
            )
        );

        $handle = $this->isolator()->proc_open(
            $command,
            array(
                array('pipe', 'r'),
                array('pipe', 'w'),
                array('pipe', 'w'),
            ),
            $pipes
        );
        if (false === $handle) {
            throw new Exception\LaunchException($arguments[0]);
        }

        foreach ($pipes as $pipe) {
            $this->isolator()->fclose($pipe);
        }

        $this->isolator()->proc_close($handle);
    }