anchor.diff:  									if( isArray( returnStruct[ arg ] ) ){
   										for( var i = 1; i LTE arrayLen( returnStruct[ arg ] ); i++ ){
   											if( isObject( returnStruct[ arg ][ i ] ) ){
  -												returnStruct['__level'] = nestLevel;
  +												// returnStruct['__level'] = nestLevel;
   												returnStruct[ arg ][ i ] = returnStruct[ arg ][ i ].toStruct( excludeKeys = excludeKeys, preserveCase = preserveCase, nestLevel = nestLevel+1 );
   											}
   										}
   									}else if( isObject( returnStruct[ arg ] ) ){
  -										returnStruct['__level'] = nestLevel;
  +										// returnStruct['__level'] = nestLevel;
   										returnStruct[ arg ] = returnStruct[ arg ].toStruct( excludeKeys = excludeKeys, preserveCase = preserveCase, nestLevel = nestLevel+1 );
   									}
   								}else{
  
positive.code: 		// the chache's life as long as you'd like.  Note that the cached object is only updated when relationships
  		// are added via hasMany or belongsTo, or the entity is persisted to the database (.save() is called )
  
  		// if( isSimpleValue( ID ) && len( trim( ID ) ) ){
  		// 	// Load from cache if we've got it
  		// 	// cacheremove( '#getTable()#-#ID#' );
  		// 	lock type="readonly" name="#getTable()#-#ID#" timeout="1"{
  		// 		var cachedObject = cacheGet( '#getTable()#-#ID#' );
  		// 	}
  		// 	// writeLog('Loaded #getTable()#-#ID# from cache');
  		// 	// if cachedObject is null that means the object didn't exist in cache, so we'll just move on with loading
  		// 	if( !isNull( cachedObject ) && len( trim( cachedObject.getID() ) ) ){
  		// 		// If we made it this far, the object was found in cache.  Now, to "laod" the cache object's data into the
  		// 		// current object is going to take some trickery.
  		// 		// First, we'll set the "fromCache" flag so that later we can see this was loaded from cache.
  		// 		cachedObject.set__FromCache( true );
  
  		// 		// When an object is loaded from cache the variables.meta.properties doesn't
  		// 		// know about any relationships that were added after the object was originally loaded.
  		// 		// So though we'd normally iterate the variables.meta.properties array to flesh out the entity,
  		// 		// in this case we'll just iterate the cachedObject directly (NOTE: calling getMetaData() on the
  		// 		// cachedObject will just return the metadata of BaseModelObject, and not the instantiated object's
  		// 		// injected properties )
  
  		// 		for( var prop in cachedObject ){
  		// 			if(!isCustomFunction( cachedObject[prop] ) && prop != "METHODS" ){
  		// 				var newProp = structKeyExists( getDynamicMappings(), prop ) ? getDynamicMappings()[ prop ] : prop;
  		// 				this[ newProp ] = cachedObject[ newProp ];
  		// 				variables[ newProp ] = cachedObject[ newProp ];
  		// 				// writeLog('Pumping #prop# into the object from cache...');
  		// 				arrayAppend( variables.meta.properties, { table = prop, name = newProp, column = newProp, type = isObject( cachedObject[ newProp ] ) ? "object" : "string" } );
  		// 			}
  		// 		}
  
  		// 		// Now that we've loaded the data, we need to identify if it is a new record or not.
  		// 		variables._isNew = !len( trim( this.getID() ) );
  		// 		// HACK ALERT - Somehow, sometimes, the object pulled from cache is empty, even though we check for
  		// 		// an empty getID() before we even get here.... nutso, right?  All cache operations are locked, so
  		// 		// not really sure why this happens.  So when it does happen, we'll just bypass the cache and load
  		// 		// the object from scratch.  If this didn't happen, we'll return the cached object.
  		// 		if( len( trim( this.getID() ) ) ){
  		// 			return cachedObject;
  		// 		}
  		// 	}
  		// }
  
  
  		// If we've made it this far, the object wasn't in cache so we'll need to load it manually.  Now, let's
  
negative.code: 	* Loads Many-To-One relationships into the current entity
  	* Example: Many OrderItems entities belong to the same Order
  	**/
  	private any function _getManyToOne( required string table, required string fkColumn, string pkColumn = getIDField(), string property = arguments.table, string returnType = "object", string where = "" ){
  		if( !structKeyExists( variables, fkColumn) ){
  			throw( message = "Unknown Foreign Key Property", type="BMO", detail="The Foreign Key: #fkColumn# did not exist in #table#.");
  		}
  