docs: function initComponents (config) {
      // check if immutable-app-component module is loaded
      var hasImmutableAppComponent = defined(config.modules['immutable-app-component'])
      // get components directory
      var dirs = getDir(config, 'components')
      // load component definitions from each directory
      _.each(dirs, dir => initComponentsDir(config, dir))
      // if there are components but component module is not loaded throw error
      if (_.keys(config.components).length > 0 && !hasImmutableAppComponent) {
          throw new Error('immutable-app-component not loaded')
      }
      // create new component instances from definitions
      _.each(config.components, (component, name) => {
          config.components[name] = new ImmutableCoreComponent(component)
      })
  }