anchor.diff:  	var/gctime = world.time
   	var/refid = "\ref[D]"
   
  +#ifdef TESTING
  +	if(reference_find_on_fail_types[D.type])
  +		reference_find_on_fail["\ref[D]"] = TRUE
  +#endif
  +
   	D.gc_destroyed = gctime
   	var/list/queue = queues[level]
   	if (queue[refid])
   		queue -= refid // Removing any previous references that were GC'd so that the current object will be at the end of the list.
   
   	queue[refid] = gctime
  +
  +#ifdef TESTING
  +/datum/controller/subsystem/garbage/proc/add_type_to_findref(type)
  +	if(!ispath(type))
  +		return "NOT A VAILD PATH"
  +	reference_find_on_fail_types |= typecacheof(type)
  +
  +/datum/controller/subsystem/garbage/proc/remove_type_from_findref(type)
  +	if(!ispath(type))
  +		return "NOT A VALID PATH"
  +	reference_find_on_fail_types -= typesof(type)
  +
  +/datum/controller/subsystem/garbage/proc/clear_findref_types()
  +	reference_find_on_fail_types = list()
  +#endif
   
   //this is mainly to separate things profile wise.
   /datum/controller/subsystem/garbage/proc/HardDelete(datum/D)
  
positive.code: 			if (QDEL_HINT_IFFAIL_FINDREFERENCE)
  				SSgarbage.Queue(D)
  				#ifdef TESTING
  				SSgarbage.reference_find_on_fail[REF(D)] = TRUE
  				#endif
  			else
  				#ifdef TESTING
  
negative.code: 
  	#ifdef TESTING
  	var/list/reference_find_on_fail = list()
  	var/list/reference_find_on_fail_types = list()
  	#endif
  
  
  