anchor.diff:  	else if(I == proxy_module)
   		proxy_module = null
   
  +/obj/structure/camera_assembly/welder_act(mob/living/user, obj/item/tool)
  +	if(state != STATE_WRENCHED && state != STATE_WELDED)
  +		return
  +	. = TRUE
  +	if(!tool.tool_start_check(user, amount=3))
  +		return
  +	user.balloon_alert_to_viewers("[state == STATE_WELDED ? "un" : null]welding...")
  +	audible_message(span_hear("You hear welding."))
  +	if(!tool.use_tool(src, user, 2 SECONDS, amount=3, volume = 50))
  +		user.balloon_alert_to_viewers("stopped [state == STATE_WELDED ? "un" : null]welding!")
  +		return
  +	state = ((state == STATE_WELDED) ? STATE_WRENCHED : STATE_WELDED)
  +	set_anchored(state == STATE_WELDED)
  +	user.balloon_alert_to_viewers(state == STATE_WELDED ? "welded" : "unwelded")
  +
   
   /obj/structure/camera_assembly/attackby(obj/item/W, mob/living/user, params)
   	switch(state)
  -		if(STATE_WRENCHED)
  -			if(W.tool_behaviour == TOOL_WELDER)
  -				if(weld(W, user))
  -					to_chat(user, span_notice("You weld [src] securely into place."))
  -					set_anchored(TRUE)
  -					state = STATE_WELDED
  -				return
  -
   		if(STATE_WELDED)
   			if(istype(W, /obj/item/stack/cable_coil))
   				var/obj/item/stack/cable_coil/C = W
  
positive.code: 					state = STATE_WIRED
  				else
  					to_chat(user, span_warning("You need two lengths of cable to wire a camera!"))
  					return
  				return
  
  			else if(W.tool_behaviour == TOOL_WELDER)
  
  				if(weld(W, user))
  					to_chat(user, span_notice("You unweld [src] from its place."))
  					state = STATE_WRENCHED
  					set_anchored(TRUE)
  				return
  
  		if(STATE_WIRED) // Upgrades!
  			if(istype(W, /obj/item/stack/sheet/mineral/plasma)) //emp upgrade
  				if(emp_module)
  
negative.code: 	qdel(src)
  	return TRUE
  
  
  /obj/structure/camera_assembly/deconstruct(disassembled = TRUE)
  	if(!(flags_1 & NODECONSTRUCT_1))
  