need to refactor annotator