add caching mechanism for annotationData