private function buildEventMap()
    {
        $this->synchronousEventMap  = new EventMapping();
        $this->asynchronousEventMap = new EventMapping();

        $eventMap       = NULL;
        $annotationName = 'Helmich\\EventBroker\\Annotations\\Listener';

        $classes = $this->reflectionService->getClassesContainingMethodsAnnotatedWith($annotationName);
        foreach ($classes as $class)
        {
            $classReflection = new ClassReflection($class);
            /** @var MethodReflection $method */
            foreach ($classReflection->getMethods() as $method)
            {
                if ($this->reflectionService->isMethodAnnotatedWith($class, $method->getName(), $annotationName))
                {
                    /** @var Listener $annotation */
                    $annotation = $this->reflectionService->getMethodAnnotation(
                        $class,
                        $method->getName(),
                        $annotationName
                    );

                    $event = $annotation->event;
                    $this
                        ->getEventMap($annotation->synchronous)
                        ->addListenerForEvent($event, [$class, $method->getName()]);
                }
            }
        }
    }