public function start()
    {
        if (!$this->canStart()) {
            return false;
        }

        $this->startTime = microtime(true);

        return $this->setState(self::STATE_STARTED);
    }