abstract annotation handling