anchor.diff:  			list("name" = "\[Air\]", "icon" = "grey-c-2"),
   			list("name" = "\[CAUTION\]", "icon" = "yellow-c-2")
   			)
  -		colorcontainer = list(//passed to the ui to render the color lists
  -			"prim" = list(
  -				"options" = possiblemaincolor,
  -				"name" = "Primary color",
  -				"anycolor" = -1,//0: no color applied. 1: color selected. Not used for primary color.
  -			),
  -			"sec" = list(
  -				"options" = possibleseccolor,
  -				"name" = "Secondary color",
  -				"anycolor" = 0,
  -			),
  -			"ter" = list(
  -				"options" = possibletertcolor,
  -				"name" = "Tertiary color",
  -				"anycolor" = 0,
  -			),
  -			"quart" = list(
  -				"options" = possiblequartcolor,
  -				"name" = "Quaternary color",
  -				"anycolor" = 0,
  -			)
  +		
  +		possibledecals = list( //var that stores all possible decals, used by ui
  +			list("name" = "Low temperature canister", "icon" = "cold"),
  +			list("name" = "High temperature canister", "icon" = "hot"),
  +			list("name" = "Plasma containing canister", "icon" = "plasma")
   		)
  +
  +var/datum/canister_icons/canister_icon_container = new()
  +
  +/obj/machinery/portable_atmospherics/canister
  +	name = "canister"
  +	icon = 'icons/obj/atmos.dmi'
  +	icon_state = "yellow"
  +	density = 1
  +	var/health = 100.0
  +	flags = CONDUCT
  +	
  +	var/menu = 0
  +	//used by nanoui: 0 = main menu, 1 = relabel
  +	
  +	var/valve_open = 0
  +	var/release_pressure = ONE_ATMOSPHERE
  +	
  +	var/list/_color //variable that stores colours
  +	var/list/decals //list that stores the decals
  +	
  +	//lists for check_change()
  +	var/list/oldcolor
  +	var/list/olddecals
  +	
  +	//passed to the ui to render the color lists
  +	var/list/colorcontainer
  +	var/list/possibledecals
  +	
  +	var/can_label = 1
  +	var/filled = 0.5
  +	pressure_resistance = 7*ONE_ATMOSPHERE
  +	var/temperature_resistance = 1000 + T0C
  +	volume = 1000
  +	use_power = 0
  +	var/release_log = ""
  +	var/busy = 0
  +	var/update_flag = 0
  +	
  +	New()
  +		..()
  +		_color = list(
  +		"prim" = "yellow",
  +		"sec" = "none",
  +		"ter" = "none",
  +		"quart" = "none")
  +		oldcolor = new /list()
  +		decals = list("cold" = 0, "hot" = 0, "plasma" = 0)
  +		colorcontainer = new /list(4)
  +		possibledecals = new /list(3)
   		update_icon()
  +		
  +/obj/machinery/portable_atmospherics/canister/proc/init_data_vars()
  +	//passed to the ui to render the color lists
  +	colorcontainer = list(
  +		"prim" = list(
  +			"options" = canister_icon_container.possiblemaincolor,
  +			"name" = "Primary color",
  +		),
  +		"sec" = list(
  +			"options" = canister_icon_container.possibleseccolor,
  +			"name" = "Secondary color",
  +		),
  +		"ter" = list(
  +			"options" = canister_icon_container.possibletertcolor,
  +			"name" = "Tertiary color",
  +		),
  +		"quart" = list(
  +			"options" = canister_icon_container.possiblequartcolor,
  +			"name" = "Quaternary color",
  +		)
  +	)
  +	
  +	//var/anycolor used by the nanoUI, 0: no color applied. 1: color applied
  +	for(var/C in colorcontainer)
  +		if(C == "prim") continue
  +		var/list/L = colorcontainer[C]
  +		if(!(_color[C]) || (_color[C] == "none"))
  +			L.Add(list("anycolor" = 0))
  +		else
  +			L.Add(list("anycolor" = 1))
  +		colorcontainer[C] = L
  +	
  +	possibledecals = new /list(3)
  +	
  +	var/i
  +	var/list/L = canister_icon_container.possibledecals
  +	for(i=1;i<=L.len;i++)
  +		var/list/LL = L[i]
  +		LL = LL.Copy() //make sure we don't edit the datum list
  +		LL.Add(list("active" = decals[LL["icon"]])) //"active" used by nanoUI
  +		possibledecals[i] = LL
   
   /obj/machinery/portable_atmospherics/canister/proc/check_change()
   	var/old_flag = update_flag
  
positive.code: 
  /obj/machinery/portable_atmospherics/canister/toxins/New()
  	..()
  
  	_color["prim"] = "orange"
  	decals = list("plasma")
  	possibledecals[3]["active"] = 1
  	src.air_contents.toxins = (src.maximum_pressure*filled)*air_contents.volume/(R_IDEAL_GAS_EQUATION*air_contents.temperature)
  	air_contents.update_values()
  
  
negative.code: /datum/canister_icons
  	var
  		possiblemaincolor = list( //these lists contain the possible colors of a canister
  			list("name" = "\[N2O\]", "icon" = "redws"),
  			list("name" = "\[N2\]", "icon" = "red"),
  