Annotation based event dispatcher