public function run($step)
    {
        if ($this->authItem !== false && $this->checkAccess) {
            call_user_func($this->checkAccess, $this->authItem);
        }

        $steps = $this->steps();
        if (!isset($steps[$step])) {
            throw new InvalidConfigException('Step is not defined in class');
        }

        if (!is_callable($steps[$step])) {
            throw new InvalidConfigException('Step should be callable');
        }

        return call_user_func($steps[$step]);
    }