anchor.diff:  	public any function save( struct overrides = {}, boolean force = false, any callback ){
   
   		var tempID = this.getID();
  -		var callbackArgs = { ID = getID(), method = 'save' };
  +		var callbackArgs = { ID = this.getID(), method = 'save' };
   
   		// remove object from cache (if it exists)
  -		// Removing #getTable()#-#getID()# from cache
  -		lock type="exclusive" name="#getTable()#-#getID()#" timeout="1"{
  -			cacheRemove( '#getTable()#-#getID()#' );
  +		// Removing #this.getTable()#-#this.getID()# from cache
  +		lock type="exclusive" name="#this.getTable()#-#this.getID()#" timeout="1"{
  +			cacheRemove( '#this.getTable()#-#this.getID()#' );
   		}
   		// Either insert or update the record
   		if ( isNew() ){
  
positive.code: 			// ends with _ID, and does not have a cfc associated with it. If both of those statements are true we'll try
  			// to load the child table via BaseModelObject.
  
  			if( !structKeyExists( col, 'cfc' )
  				&& ( ( listLen( col.name, '_') GT 1
  					&& listLast( col.name, '_' ) == 'ID' )
  				|| structKeyExists( getDynamicMappings(), col.name )
  				|| ( structKeyExists( col, 'column' )
  					&& structKeyExists( getDynamicMappings(), col.column ) ) ) ){
  				// We have a field ending with _ID, which typically indicates a "foriegn key" property to a tabled named whatever prefixes the _ID
  				// Using this convention, if the parent table is "orders" and the field name is "orders_ID" we can load the parent
  				try{
  
negative.code: 	/**
  	* I create a new empty instance of the entity
  	**/
  	public function new( string table = getTable(), dao dao = getDao(), string IDField = getIDField() ){
  		if( listLast( variables.meta.name , '.' ) == "BaseModelObject"){
  			return createObject( "component", "BaseModelObject" ).init( dao = dao, table = table, dynamicMappings = getDynamicMappings(), cacheEntities = get__cacheEntities(), cachedWithin = getcachedWithin(), IDField = IDField, autoWire = getAutoWire() );
  		}else{
  			try{
  				return createObject( "component", listDeleteAt( variables.meta.fullName, listLen( variables.meta.fullName, '.' ), '.' ) & '.' & table ).init( dao = dao );
  			}catch( any e ){
  				return createObject( "component", "BaseModelObject" ).init( dao = dao, table = table, dynamicMappings = getDynamicMappings(), cacheEntities = get__cacheEntities(), cachedWithin = getcachedWithin(), IDField = IDField, autoWire = getAutoWire() );
  				// return createObject( "component", variables.meta.fullName ).init( dao = dao );
  			}
  		}
  