@@ -0,0 +1,1392 @@
+package seedu.address.storage;%0A%0Aimport java.io.IOException;%0Aimport java.util.Optional;%0A%0Aimport seedu.address.commons.exceptions.DataConversionException;%0Aimport seedu.address.model.ReadOnlyTaskList;%0A%0A/**%0A * Represents a storage for %7B@link seedu.address.model.TaskList%7D.%0A */%0Apublic interface TaskListStorage %7B%0A%0A    /**%0A     * Returns the file path of the data file.%0A     */%0A    String getTaskListFilePath();%0A%0A    /**%0A     * Returns TaskList data as a %7B@link ReadOnlyTaskList%7D.%0A     *   Returns %7B@code Optional.empty()%7D if storage file is not found.%0A     * @throws DataConversionException if the data in storage is not in the expected format.%0A     * @throws IOException if there was any problem when reading from the storage.%0A     */%0A    Optional%3CReadOnlyTaskList%3E readTaskList() throws DataConversionException, IOException;%0A%0A    /**%0A     * @see #getTaskListFilePath()%0A     */%0A    Optional%3CReadOnlyTaskList%3E readTaskList(String filePath) throws DataConversionException, IOException;%0A%0A    /**%0A     * Saves the given %7B@link ReadOnlyTaskList%7D to the storage.%0A     * @param TaskList cannot be null.%0A     * @throws IOException if there was any problem writing to the file.%0A     */%0A    void saveTaskList(ReadOnlyTaskList TaskList) throws IOException;%0A%0A    /**%0A     * @see #saveTaskList(ReadOnlyTaskList)%0A     */%0A    void saveTaskList(ReadOnlyTaskList TaskList, String filePath) throws IOException;%0A%0A%7D%0A

add TaskListStorage interface