annotations refactored