@@ -0,0 +1,1149 @@
+package seedu.taskell.model;%0A%0Aimport seedu.taskell.model.task.Task;%0A%0A/** Stores the relevant details of a command so it can be undone via UndoCommand%0A * */%0Apublic class CommandHistory %7B%0A    private final String commandText, commandType;%0A    private final Task task;  //relevent task to be added, deleted or edited%0A    private boolean toRedo;%0A    %0A    public CommandHistory() %7B%0A        commandText = %22default command text%22;%0A        commandType = %22default command type%22;%0A        task = null;%0A    %7D%0A    %0A    public CommandHistory(String commandText, String commandType, Task task) %7B%0A        assert commandText != null;%0A        assert commandType != null;%0A        assert !commandText.trim().isEmpty();%0A        assert !commandType.trim().isEmpty();%0A        %0A        this.commandText = commandText;%0A        this.commandType = commandType;%0A        this.task = task;%0A    %7D%0A    %0A    public String getCommandText() %7B%0A        return commandText;%0A    %7D%0A    %0A    public String getCommandType() %7B%0A        return commandType;%0A    %7D%0A    %0A    public Task getTask() %7B%0A        return task;%0A    %7D%0A    %0A    public void setToRedoToTrue() %7B%0A        toRedo = true;%0A    %7D%0A%7D%0A

create CommandHistory as data structure to hold relevant details for undoing a command