added mouse and keyboard input