-creating mouse modes to abstract mode specific functionality and make a
more convenient interface
closes #7