@@ -0,0 +1,1206 @@
+package seedu.tache.logic.commands;%0A%0Aimport seedu.tache.logic.commands.exceptions.CommandException;%0A%0Apublic class UndoCommand extends Command %7B%0A%0A    public static final String COMMAND_WORD = %22undo%22;%0A    public static final String MESSAGE_USAGE = COMMAND_WORD + %22:%5Cn%22 + %22Undoes the last change to the address book.%5Cn%5Ct%22%0A            + %22Example: %22 + COMMAND_WORD;%0A%0A    public static final String MESSAGE_SUCCESS = %22Undone: %25s%22;%0A    public static final String MESSAGE_EMPTY_HISTORY = %22Nothing to undo!%22;%0A    public static final String MESSAGE_FAILURE = %22Failed to undo: %25s%22;%0A%0A    @Override%0A    public CommandResult execute() %7B%0A        // TODO Auto-generated method stub%0A        if (undoHistory.isEmpty()) %7B%0A            return new CommandResult(MESSAGE_EMPTY_HISTORY);%0A        %7D else %7B%0A            Undoable lastCommand = undoHistory.pop();%0A            assert lastCommand.isUndoable();%0A            try %7B%0A                String undoResult = lastCommand.undo();%0A                return new CommandResult(String.format(MESSAGE_SUCCESS, undoResult));%0A            %7D catch (CommandException e) %7B%0A                return new CommandResult(String.format(MESSAGE_FAILURE, e.getMessage()));%0A            %7D%0A        %7D%0A    %7D%0A%0A%7D%0A

Create UndoCommand