separated processor from the annotation, so that annotations can be
copied around easily to other projects