feat(Key): support annotations in addition to annotation types

This PR is to prepare existing code for #180.
you could add the stack trace to help identifying the source line (by throwing in a try catch block)