refactoring 3 + debug

solve a bug that occur during undo and redo regarding archive: after
undo of delete, task is remove from the list but after closing the
program, the item will reappear.

refactoring of storage