anchor.diff:  	if(!panel_open)
   		return attack_hand(user)
   
  +/obj/machinery/button/proc/setup_device()
  +	if(id && istype(device, /obj/item/device/assembly/control))
  +		var/obj/item/device/assembly/control/A = device
  +		A.id = id
  +	initialized = 1
  +
   /obj/machinery/button/attack_hand(mob/user)
  +	if(!initialized)
  +		setup_device()
   	src.add_fingerprint(user)
   	if(panel_open)
   		if(device || board)
  
positive.code: 			A.specialfunctions = specialfunctions
  		else
  			device = new /obj/item/device/assembly/control(src)
  	..()
  
  
  /obj/machinery/button/massdriver
  
negative.code: 		else
  			board.one_access = 1
  			board.accesses = req_one_access
  
  
  /obj/machinery/button/update_icon()
  