Instead of defining concrete subclasses of the base Asset class, mix in the asset-type/service modules at runtime in the loaders.