Refactoring

We're down ~500 lines of code on mouseEvents.js! And with even more functionality!
Not sure why this wasn't combined.