Added Mouse input handling and various other