       for componentRef in _.values(componentMap)
         componentModel = @supermodel.getModelByOriginalAndMajorVersion(
           LevelComponent, componentRef.original, componentRef.majorVersion)
+        if not componentModel?.loaded
+          @loadComponents([componentRef])
+          continue
         for dependency in componentModel?.get('dependencies') or []
           if not componentMap[dependency.original]
             component = @supermodel.getModelByOriginalAndMajorVersion(
               LevelComponent, dependency.original, dependency.majorVersion)
-            if not component
+            if not component?.loaded
               @loadComponents([dependency])
               # will run onComponentsAdded once more when the model loads
             else

    @reportChanges()

  updateComponentsList: ->
    @componentsTreema?.set('/', $.extend(true, [], @components))

  onComponentsAdded: ->
    return unless @componentsTreema


  makeThangComponentConfigView: (thangComponent) ->
    component = @supermodel.getModelByOriginal(LevelComponent, thangComponent.original)
    return unless component?.loaded
    config = thangComponent.config ? {}
    configView = new ThangComponentConfigView({
      supermodel: @supermodel
