lifecycle annotations refactored