implementation of annotation interface