added undo and redo, syntax highlighting works pretty well!