refactored annotation component