anchor.diff:  
   /obj/machinery/disposal/initialize() //this will remove around 5kpa from a turf, add it to the disposal air and then add it back to the turf, basically it spawns air depending on the turf air.
   	var/atom/L = loc
  -	var/datum/gas_mixture/env = L.return_air()
  -	var/datum/gas_mixture/removed = env.remove(SEND_PRESSURE)
  +	var/datum/gas_mixture/env = new
  +	env.copy_from(L.return_air())
  +	var/datum/gas_mixture/removed = env.remove(SEND_PRESSURE + 1)
   	air_contents.merge(removed)
  -	env.merge(removed)
  +	trunk_check()
   
   	// attack by item places it in to disposal
   /obj/machinery/disposal/attackby(var/obj/item/I, var/mob/user)
  
positive.code: 	else
  		dat += "Pump: <A href='?src=\ref[src];pump=0'>Off</A> <B>On</B> (idle)<BR>"
  
  	var/per = 100* air_contents.return_pressure() / (SEND_PRESSURE)
  
  	dat += "Pressure: [round(per, 1)]%<BR></body>"
  
  
negative.code: 	// find the attached trunk (if present) and init gas resvr.
  /obj/machinery/disposal/New()
  	..()
  
  	trunk_check()
  
  	air_contents = new/datum/gas_mixture()
  	//gas.volume = 1.05 * CELLSTANDARD
  	update()
  
  /obj/machinery/disposal/proc/trunk_check()
  	trunk = locate() in src.loc
  	if(!trunk)
  		mode = 0
  		flush = 0
  	else
  		mode = initial(mode)
  		flush = initial(flush)
  		trunk.linked = src	// link the pipe trunk to self
  
  /obj/machinery/disposal/Del()
  	for(var/atom/movable/AM in contents)
  