How to generate different kinds of application architectures without maintaining redundant archetypes code