anchor.diff:  
   		if("marked datum")
   			new_var = holder.marked_datum
  +			if(assoc)
  +				L[assoc_key] = new_var
  +			else
  +				L[L.Find(variable)] = new_var
  +
  +		if("new atom")
  +			var/type = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf)
  +			new_var = new type()
  +			if(assoc)
  +				L[assoc_key] = new_var
  +			else
  +				L[L.Find(variable)] = new_var
  +
  +		if("new datum")
  +			var/type = input("Enter type:","Type") as null|anything in typesof(/datum)
  +			new_var = new type()
   			if(assoc)
   				L[assoc_key] = new_var
   			else
  
positive.code: 
  		if(src.holder && src.holder.marked_datum)
  			class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
  				"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default","marked datum ([holder.marked_datum.type])")
  		else
  			class = input("What kind of variable?","Variable Type",default) as null|anything in list("text",
  				"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default")
  
  		if(!class)
  			return
  
negative.code: 
  		if("marked datum")
  			var_value = holder.marked_datum
  
  		if("new atom")
  			var/type = input("Enter type:","Type") as null|anything in typesof(/obj,/mob,/area,/turf)
  			var_value = new type()
  
  		if("new datum")
  			var/type = input("Enter type:","Type") as null|anything in typesof(/datum)
  			var_value = new type()
  
  	if(!var_value) return
  
  