Feature/annotation support

@asyncore please review, but don't merge and don't delete the branch.