public function initialize($stateName = null)
    {
        if (!$stateName) {
            $stateName = $this->initialStateName;
        }

        if (empty($this->states[$stateName])) {
            throw new \Exception('Passed name of current state is wrong');
        }

        $this->currentState = $this->states[$stateName];

        return $this;
    }