I'm not sure I like rotation - that's rotation in general, not your implementation. I learned to read a map long ago, the right way!