Many changes to component instantiation