fully functional rotates