public function start($pid_file = NULL, $log_file = '/dev/null')
	{
		if ($pid_file)
		{
			$this->_pid_file = $pid_file;
			if (is_file($this->_pid_file))
			{
				Phantomjs::kill(file_get_contents($pid_file));
				unlink($this->_pid_file);
			}
		}

		$this->_pid = Phantomjs::start('phantom.js', $this->port(), 'phantomjs-connection.js', $log_file);

		if ($this->_pid_file)
		{
			file_put_contents($this->_pid_file, $this->_pid);
		}

		$self = $this;

		return Attempt::make(function() use ($self) {
			return $self->is_running();
		});
	}