Split the "archive" mananging out to an abstract interface with
concrete implementations.