cleaned up rotation code moving duplicate code into rotatePoint()