Added 3 new classes to handle actionListeners
Refactored a large chunk of code. Added a seperate class to deal with mouse interaction