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("marked datum")
  			O.vars[variable] = holder.marked_datum
  
  	O.on_varedit(variable)
  	world.log << "### VarEdit by [src]: [O.type] [variable]=[html_encode("[O.vars[variable]]")]"
  	log_admin("[key_name(src)] modified [original_name]'s [variable] to [O.vars[variable]]")
  
negative.code: 	var/class = "text"
  	if(src.holder && src.holder.marked_datum)
  		class = input("What kind of variable?","Variable Type") as null|anything in list("text",
  			"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum","marked datum ([holder.marked_datum.type])")
  	else
  		class = input("What kind of variable?","Variable Type") as null|anything in list("text",
  			"num","type","reference","mob reference", "icon","file","list","edit referenced object","restore to default", "new atom", "new datum")
  
  	if(!class)
  		return
  