public function runServicesFromEvent($serviceEvent, $eventMethodName, AbstractServiceDTO $dto)
    {
        if (false === $this->hasBeenInitialized) {
            return;
        }

        $this->checkServiceEvent($serviceEvent);
        $this->checkServiceEventMethodName($serviceEvent, $eventMethodName);

        $serviceInstances = $this->getServicesFromEvent($serviceEvent);

        if (count($serviceInstances) > 0) {
            foreach ($serviceInstances as $serviceInstance) {
                $serviceInstance->$eventMethodName($dto);
            }

            $serviceInstances[0]->runDelayedCallbacks($dto);
        }
    }