archive creator refactor