Refactored code base and introduced AnnotationHandler trait.

Each Annotation got its own AnnotationHandler implementation.