anchor.diff:  		return
   	var/datum/component/material_container/mat_container = materials.mat_container
   	switch(action)
  -		if("Eject")
  -			if(!inserted_id)
  -				return
  -			usr.put_in_hands(inserted_id)
  -			inserted_id = null
  -			return TRUE
  -		if("Insert")
  -			var/obj/item/card/id/I = usr.get_active_held_item()
  -			if(istype(I))
  -				if(!usr.transferItemToLoc(I,src))
  -					return
  -				inserted_id = I
  +		if("Claim")
  +			var/mob/M = usr
  +			var/obj/item/card/id/I = M.get_idcard(TRUE)
  +			if(points)
  +				if(I)
  +					I.mining_points += points
  +					points = 0
  +				else
  +					to_chat(usr, "<span class='warning'>No valid ID detected.</span>")
   			else
  -				to_chat(usr, "<span class='warning'>Not a valid ID!</span>")
  -			return TRUE
  -		if("Claim")
  -			if(inserted_id)
  -				inserted_id.mining_points += points
  -				points = 0
  +				to_chat(usr, "<span class='warning'>No points to claim.</span>")
   			return TRUE
   		if("Release")
   			if(!mat_container)
   				return
   			if(materials.on_hold())
   				to_chat(usr, "<span class='warning'>Mineral access is on hold, please contact the quartermaster.</span>")
  -			else if(!check_access(inserted_id) && !allowed(usr)) //Check the ID inside, otherwise check the user
  +			else if(!allowed(usr)) //check the user
   				to_chat(usr, "<span class='warning'>Required access not found.</span>")
   			else
   				var/mat_id = params["id"]
  
positive.code: /obj/machinery/mineral/ore_redemption/ui_data(mob/user)
  	var/list/data = list()
  	data["unclaimedPoints"] = points
  	if(inserted_id)
  		data["hasID"] = TRUE
  		data["claimedPoints"] = inserted_id.mining_points
  
  	data["materials"] = list()
  	var/datum/component/material_container/mat_container = materials.mat_container
  
negative.code: 
  	if(!powered())
  		return
  
  	if(istype(W, /obj/item/disk/design_disk))
  		if(user.transferItemToLoc(W, src))
  