public function initialize(
        $object,
        StateLineStack $stateLineStack,
        $description
    ) {
        if ($stateLineStack->getLastStateLine() instanceof StateLineInterface) {
            throw new ObjectAlreadyInitializedException();
        }

        $pointOfEntry = $this
            ->machine
            ->getPointOfEntry();

        $stateLine = $this->createStateLine(
            $pointOfEntry,
            $description
        );

        $stateLineStack->addStateLine($stateLine);

        $this
            ->machineEventDispatcher
            ->dispatchInitializationEvents(
                $this->machine,
                $object,
                $stateLineStack
            );

        return $stateLineStack;
    }