Move nested class to top level, allowing more flexibility about reuse.
Push method into ArchiveGuesser, aiming to potentially extract a common interface