Added mouse input + undo/redo