anchor.diff:  	var/heat_capacity_self_to_sharer = 0
   	var/heat_capacity_sharer_to_self = 0
   
  -	for(var/sharer_id in sharercache)
  -		assert_gas(sharer_id)
  +	for(var/sharer_id in sharercache-selfcache)
  +		add_gas(sharer_id) //we can use add_gas() because we're looping only through the IDs not in our cache
   
   	for(var/id in selfcache)
  -		sharer.assert_gas(id)
  -
  +		var/gas = selfcache[id]
   		var/sharergas = sharercache[id]
  -		var/gas = selfcache[id]
  -
  -		var/delta = QUANTIZE(gas[ARCHIVE] - sharergas[ARCHIVE])/(atmos_adjacent_turfs+1)
  +
  +		var/delta = QUANTIZE(gas[ARCHIVE] - (sharergas ? sharergas[ARCHIVE] : 0))/(atmos_adjacent_turfs+1)
   
   		if(delta && abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
   			var/gas_heat_capacity = abs(gas[MOLES] * gas[SPECIFIC_HEAT])
  
positive.code: 	fuel_burnt = 0
  
  	//listmos procs
  /datum/gas_mixture/proc/assert_gas(gas_id)
  	var/cached_gases = gases
  	if(cached_gases[gas_id])
  		return
  	cached_gases[gas_id] = gaslist(gas_id) //see ATMOSPHERICS/gas_types.dm
  
  /datum/gas_mixture/proc/assert_gases()
  	for(var/id in args)
  		assert_gas(id)
  
  /datum/gas_mixture/proc/garbage_collect()
  	var/list/cached_gases = gases
  	for(var/id in cached_gases)
  
negative.code: 
  /datum/gas_mixture/copy_from_turf(turf/model)
  	assert_gases(arglist(hardcoded_gases))
  	var/list/cached_gases = gases
  
  	cached_gases["o2"][MOLES]		= model.oxygen
  	cached_gases["n2"][MOLES]		= model.nitrogen
  	cached_gases["plasma"][MOLES]	= model.toxins
  	cached_gases["co2"][MOLES]		= model.carbon_dioxide
  
  	for(var/id in cached_gases-hardcoded_gases)
  		cached_gases[id][MOLES] = 0 //turfs don't account for anything other than the four old hardcoded gases
  
  	temperature = model.temperature
  
  //Takes the amount of the gas you want to PP as an argument
  