 			loc.arguments.key = $createPrimaryKeyList(params=arguments.value, keys=loc.model.primaryKey());
 
 			if (IsObject(arguments.value))
+			{
 				loc.object = arguments.value;
+			}
 			else if (Len(loc.arguments.key))
+			{
 				loc.object = loc.model.findByKey(argumentCollection=loc.arguments);
-
+			}
 			if (StructKeyExists(arguments.value, "_delete") && IsBoolean(arguments.value["_delete"]) && arguments.value["_delete"])
+			{
 				loc.delete = true;
-
+			}
 			if (!IsObject(loc.object) && !loc.delete)
 			{
-				StructDelete(loc.arguments, "key", false);
+				StructDelete(loc.arguments, "key");
 				return $invoke(componentReference=loc.model, method="new", invokeArgs=loc.arguments);
 			}
 			else if (Len(loc.arguments.key) && loc.delete && arguments.association.nested.delete && arguments.delete)

						$updateCollectionObject(property=arguments.property, value=arguments.value[loc.i], position=loc.i);
					}
				}
				else if (IsStruct(arguments.value[loc.i]) && ArrayLen(this[arguments.property]) gte loc.i && IsObject(this[arguments.property][loc.i]))
				{
					this[arguments.property][loc.i] = $getAssociationObject(property=arguments.property, value=arguments.value[loc.i], association=arguments.association, delete=arguments.delete);
					if (!IsStruct(this[arguments.property][loc.i]) && !this[arguments.property][loc.i])

		}
		else if (IsArray(arguments.value))
		{
			for (loc.i=1; loc.i <= ArrayLen(arguments.value); loc.i++)
			{
				if (IsObject(arguments.value[loc.i]) && ArrayLen(this[arguments.property]) >= loc.i && IsObject(this[arguments.property][loc.i]) && this[arguments.property][loc.i].compareTo(arguments.value[loc.i]))
				{
					this[arguments.property][loc.i] = $getAssociationObject(property=arguments.property, value=arguments.value[loc.i], association=arguments.association, delete=arguments.delete);
					if (!IsStruct(this[arguments.property][loc.i]) && !this[arguments.property][loc.i])
