code: function(api, parent, modelDefinition, remainingDepth) {
  		this.parentAPI = api;
  		this.RESTParent = parent;
  		this.childModels = [];
  
  		this.remainingDepth = remainingDepth - 1;
  
  		this.model = modelDefinition.model;
  		this.modelRouter = Express.Router();
  
  		this.path = this.model.tableName.toLowerCase();
  		this.primaryKey = Helpers.getPrimaryKey(this.model);
  		this.associatedBy = Helpers.getAssociatedBy(this.RESTParent, this.model);
  
  		this._initializeOptions(modelDefinition);
  		this._initializeRoutes(modelDefinition);
  
  		/**
  		 * Array of valid columns in the class minus the primary key
  		 * However the primary key is only 'not valid' to be set if it is
  		 * marked as auto-generated.
  		 */
  		this.validColumns = _.keys(this.model.rawAttributes);
  
  		if(this.model.rawAttributes[this.primaryKey]._autoGenerated)
  			this.validColumns.splice(this.validColumns.indexOf(this.primaryKey), 1);
  	}
docs: Sleep Object that holds a sequelize model's RESTful bindings.
  
  Can also contain this model's associations.
  
  TODO: Implement Filters
  
  @param {Sleep} API that this belongs to.
  @param modelDefinition
  @constructor