More mouse refactoring and stuff. Also finally add another feature!