annotation refactored