Feature/annotation support

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