-Added support for overriding the creation of non-concrete types