refactored
some annotations