anchor.diff:  
   /// Handles updating the container when the reagents change.
   /obj/item/reagent_containers/blood/on_reagent_change(datum/reagents/holder, ...)
  -	var/datum/reagent/blood/B = holder.has_reagent(/datum/reagent/blood)
  -	if(B && B.data && B.data["blood_type"])
  -		blood_type = B.data["blood_type"]
  +	var/datum/reagent/blood/new_reagent = holder.has_reagent(/datum/reagent/blood)
  +	if(new_reagent && new_reagent.data && new_reagent.data["blood_type"])
  +		blood_type = new_reagent.data["blood_type"]
  +	else if(holder.has_reagent(/datum/reagent/consumable/liquidelectricity))
  +		blood_type = "LE"
   	else
   		blood_type = null
   	return ..()
  
positive.code: /obj/item/reagent_containers/blood/universal
  	blood_type = "U"
  
  /obj/item/reagent_containers/blood/attackby(obj/item/I, mob/user, params)
  	if (istype(I, /obj/item/pen) || istype(I, /obj/item/toy/crayon))
  		if(!user.is_literate())
  			to_chat(user, span_notice("You scribble illegibly on the label of [src]!"))
  			return
  		var/t = stripped_input(user, "What would you like to label the blood pack?", name, null, 53)
  		if(!user.canUseTopic(src, BE_CLOSE))
  			return
  		if(user.get_active_held_item() != I)
  			return
  		if(t)
  			labelled = TRUE
  			name = "blood pack - [t]"
  		else
  			labelled = FALSE
  			update_name()
  
negative.code: 	. = ..()
  	if(labelled)
  		return
  	name = "blood pack[blood_type ? " - [blood_type]" : null]"
  
  /obj/item/reagent_containers/blood/random
  	icon_state = "random_bloodpack"
  