Separate Annotation Handling Code from Annotation Objects

Closes #42