anchor.diff:  /obj/structure/holopay/proc/check_operation()
   	SIGNAL_HANDLER
   	var/obj/item/card/id/linked_card = get_card()
  +	var/card_holder = holder?.resolve()
  +	if(!card_holder || linked_card.loc != card_holder)
  +		if(card_holder)
  +			UnregisterSignal(card_holder, COMSIG_MOVABLE_MOVED)
  +		holder = WEAKREF(linked_card.loc)
  +		RegisterSignal(linked_card.loc, COMSIG_MOVABLE_MOVED, .proc/check_operation)
   	if(!IN_GIVEN_RANGE(src, linked_card, max_holo_range) || !IN_GIVEN_RANGE(src, linked_card.loc, max_holo_range))
   		dissapate()
   
  
positive.code: 	/// Start checking if the source projection is in range
  	RegisterSignal(card, COMSIG_MOVABLE_MOVED, .proc/check_operation)
  	if(card.loc)
  		RegisterSignal(card.loc, COMSIG_MOVABLE_MOVED, .proc/check_operation)
  	return TRUE
  
  
negative.code: 	var/shop_logo = "donate"
  	/// Replaces the "pay whatever" functionality with a set amount when non-zero.
  	var/force_fee = 0
  	/// Current holder of the linked card
  	var/datum/weakref/holder
  
  /obj/structure/holopay/examine(mob/user)
  	. = ..()
  