refactoring: generalized RotateButton to RotateView