code: function ImmutableCoreController (args) {
      // get copy of original args
      this.args = _.cloneDeep(args)
      // create module and set options
      this.initModule(args)
      // create default paths for model if passed
      this.initModel(args)
      // create paths from arguments
      this.initPaths(args)
      // sort controllers
      this.orderControllers()
  }
docs: @function ImmutableCoreController
  
  instantiate a new controller
  
  @param {object} args
  
  @returns {ImmutableCoreController}
  
  @throws {Error}