whole_func_string: function () {
          // create new instance based on class meta data
          var instance = _.clone(modelView)
          // get number of args
          var numArgs = arguments.length
          // if function is passed a single object then these arguments will
          // be passed directly to the view instance func
          if (numArgs === 1 && typeof arguments[0] === 'object') {
              instance.args = arguments[0]
          }
          // otherwise create args as empty object
          else {
              instance.args = {}
              // if there are arguments then they must be string property names
              if (numArgs > 0) {
                  // create properties
                  instance.args.properties = []
                  // check that all args are strings
                  for (var i=0; i < numArgs; i++) {
                      assert(typeof arguments[i] === 'string', 'invalid argument '+arguments[i])
                      // add argument to list of properties
                      instance.args.properties[i] = arguments[i]
                  }
              }
          }
          // set modelViewInstanceId on instance
          setModelViewInstanceId(instance)
          // set class properties
          instance.class = 'ImmutableCoreModelViewInstance'
          instance.ImmutableCoreModelViewInstance = true
          // return instance object
          return instance
      }
func_code_string: function () {
          // create new instance based on class meta data
          var instance = _.clone(modelView)
          // get number of args
          var numArgs = arguments.length
          // if function is passed a single object then these arguments will
          // be passed directly to the view instance func
          if (numArgs === 1 && typeof arguments[0] === 'object') {
              instance.args = arguments[0]
          }
          // otherwise create args as empty object
          else {
              instance.args = {}
              // if there are arguments then they must be string property names
              if (numArgs > 0) {
                  // create properties
                  instance.args.properties = []
                  // check that all args are strings
                  for (var i=0; i < numArgs; i++) {
                      assert(typeof arguments[i] === 'string', 'invalid argument '+arguments[i])
                      // add argument to list of properties
                      instance.args.properties[i] = arguments[i]
                  }
              }
          }
          // set modelViewInstanceId on instance
          setModelViewInstanceId(instance)
          // set class properties
          instance.class = 'ImmutableCoreModelViewInstance'
          instance.ImmutableCoreModelViewInstance = true
          // return instance object
          return instance
      }
func_documentation_string: return constructor function that will generate a custom model view instance based on the parent model view class