Changed the return value to provide a CompositeInfrastructure