refactored Rotation