@@ -0,0 +1,1013 @@
+package seedu.address.logic.undo;%0A%0Aimport javafx.collections.ObservableList;%0Aimport seedu.address.model.datastructure.UndoPair;%0Aimport seedu.address.model.label.Label;%0Aimport seedu.address.model.task.ReadOnlyTask;%0A%0A//@@author A0162877N%0A/**%0A * Interface for undo command%0A */%0Apublic interface Undo %7B%0A%0A    /**%0A     * Undoes an command executed previously%0A     * @return UndoPair which contains the previous tasks and labels%0A     */%0A    UndoPair%3CObservableList%3CReadOnlyTask%3E, ObservableList%3CLabel%3E%3E getUndoData();%0A%0A    /**%0A     * Add old task state and old label state into undo storage history%0A     * @param currentTaskState - before execution%0A     * @param currentLabel - before execution%0A     */%0A    void addStorageHistory(ObservableList%3CReadOnlyTask%3E currentTaskState, ObservableList%3CLabel%3E currentLabelState);%0A%0A    /**%0A     * Return true if the undo data structure is empty and false otherwise%0A     */%0A    boolean isEmpty();%0A%0A    /**%0A     * Clears the data in the undo data structure%0A     */%0A    void clear();%0A%7D%0A

Add Undo interface for dependancy injection