introduce polymorphic archive variants