public function nextStep()
    {
        $currentStep = Yii::$app->session->get(self::SESSION_KEY, 0);
        if ($currentStep === 0) {
            Yii::$app->session->set(self::SESSION_STEPS, count($this->steps));
        }
        $maxStep = Yii::$app->session->get(self::SESSION_STEPS, 0);

        $this->type = self::TYPE_ERROR;
        $this->table = '...';

        if ($currentStep >= $maxStep) {
            return [
                'drop' => false,
                'type' => $this->type,
                'result' => Yii::t('podium/flash', 'Weird... Installation should already complete...'),
                'percent' => 100
            ];
        }
        if (!isset($this->steps[$currentStep])) {
            return [
                'drop' => false,
                'type' => $this->type,
                'result' => Yii::t('podium/flash', 'Installation aborted! Can not find the requested installation step.'),
                'percent' => 100,
            ];
        }

        $this->table = $this->steps[$currentStep]['table'];
        $result = call_user_func_array([$this, $this->steps[$currentStep]['call']], $this->steps[$currentStep]['data']);

        Yii::$app->session->set(self::SESSION_KEY, ++$currentStep);

        return [
            'drop' => false,
            'type' => $this->type,
            'result' => $result,
            'table' => $this->rawTable,
            'percent' => $this->countPercent($currentStep, $maxStep),
        ];
    }