refactoring Archiver