Currently, legacy (.adl) archetypes and ADL 1.5 archetypes are mixed together. The class ARCH_REP_ARCHETYPE also has a large number of features relating to the 'differential' archetype in its various forms. These could be separated out and a smaller state machine designed to handle the file reading and parsing and phase 1 validation. Later validation and dadl file generation should also be separated out. An interface + implementation style should be used, so that the I_XXX classes define an abstract model of handling source and generated artefacts, while the implementation classes provide the specifics for ADL.