Refactor rotation, added zoom. Needs work still