anchor.diff:  		// corgi: valid
   		return TRUE
   
  -/obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M)
  +/obj/item/clothing/mask/facehugger/proc/Leap(mob/living/M)
   	if(!valid_to_attach(M))
   		return FALSE
  +	if(iscarbon(M))
  +		var/mob/living/carbon/target = M
  +		if(target.wear_mask && istype(target.wear_mask, /obj/item/clothing/mask/facehugger))
  +			return FALSE
   	// passed initial checks - time to leap!
   	M.visible_message("<span class='danger'>[src] leaps at [M]'s face!</span>", \
   							"<span class='userdanger'>[src] leaps at [M]'s face!</span>")
  
positive.code: 
  		if(target.wear_mask)
  			var/obj/item/clothing/W = target.wear_mask
  			if(!istype(W,/obj/item/clothing/mask/facehugger) && target.dropItemToGround(W))
  				target.visible_message("<span class='danger'>[src] tears [W] off of [target]'s face!</span>", \
  									"<span class='userdanger'>[src] tears [W] off of [target]'s face!</span>")
  		forceMove(target)
  		target.equip_to_slot_if_possible(src, slot_wear_mask, 0, 1, 1)
  	// early returns and validity checks done: attach.
  	attached++
  	//ensure we detach once we no longer need to be attached
  
negative.code: 
  /obj/item/clothing/mask/facehugger/HasProximity(atom/movable/AM as mob|obj)
  	if(CanHug(AM) && Adjacent(AM))
  		return Leap(AM)
  	return 0
  
  /obj/item/clothing/mask/facehugger/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback)
  