@@ -0,0 +1,815 @@
+package seedu.address.model.datastructure;%0A%0A/**%0A * This class stores the command and the list of task as a pair%0A */%0Apublic class UndoPair%3CCommand, Data%3E %7B%0A    private final Command left;%0A    private final Data right;%0A%0A    public UndoPair(Command left, Data right) %7B%0A        this.left = left;%0A        this.right = right;%0A    %7D%0A%0A    public Command getLeft() %7B%0A        return this.left;%0A    %7D%0A%0A    public Data getRight() %7B%0A        return this.right;%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        return left.hashCode() %5E right.hashCode();%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object o) %7B%0A        if (!(o instanceof UndoPair)) %7B%0A            return false;%0A        %7D%0A        UndoPair pair = (UndoPair) o;%0A        return this.left.equals(pair.getLeft()) && this.right.equals(pair.getRight());%0A    %7D%0A%7D%0A

Create UndoPair data structure to store the data required for the undo command