anchor.diff:  		return
   
   	if(istype(I, /obj/item/seeds))
  -		if(seed)
  -			to_chat(user, "<span class='warning'>A sample is already loaded into the machine!</span>")
  -		else
  -			if(!user.temporarilyRemoveItemFromInventory(I))
  -				return
  -			insert_seed(I)
  -			to_chat(user, "<span class='notice'>You add [I] to the machine.</span>")
  -			interact(user)
  -		return
  +		if (operation)
  +			to_chat(user, "<span class='notice'>Please complete current operation.</span>")
  +			return
  +		if(!user.transferItemToLoc(I, src))
  +			return
  +		eject_seed()
  +		insert_seed(I)
  +		to_chat(user, "<span class='notice'>You add [I] to the machine.</span>")
  +		interact(user)
   	else if(istype(I, /obj/item/disk/plantgene))
   		if (operation)
   			to_chat(user, "<span class='notice'>Please complete current operation.</span>")
   			return
  +		if(!user.transferItemToLoc(I, src))
  +			return
   		eject_disk()
  -		if(!user.transferItemToLoc(I, src))
  -			return
   		disk = I
   		to_chat(user, "<span class='notice'>You add [I] to the machine.</span>")
   		interact(user)
  
positive.code: 	usr.set_machine(src)
  
  	if(href_list["eject_seed"] && !operation)
  		if (seed)
  			seed.forceMove(drop_location())
  			seed.verb_pickup()
  			seed = null
  			update_genes()
  			update_icon()
  		else
  			var/obj/item/I = usr.get_active_held_item()
  			if (istype(I, /obj/item/seeds))
  				if(!usr.temporarilyRemoveItemFromInventory(I))
  					return
  				insert_seed(I)
  				to_chat(usr, "<span class='notice'>You add [I] to the machine.</span>")
  		update_icon()
  	else if(href_list["eject_disk"] && !operation)
  		var/obj/item/I = usr.get_active_held_item()
  		eject_disk()
  		if(istype(I, /obj/item/disk/plantgene))
  			if(!usr.transferItemToLoc(I, src))
  				return
  			disk = I
  			to_chat(usr, "<span class='notice'>You add [I] to the machine.</span>")
  	else if(href_list["op"] == "insert" && disk && disk.gene && seed)
  		if(!operation) // Wait for confirmation
  			operation = "insert"
  
negative.code: 
  /obj/machinery/plantgenes/proc/eject_disk()
  	if (disk && !operation)
  		if(Adjacent(usr) && !issiliconoradminghost(usr))
  			if (!usr.put_in_hands(disk))
  				disk.forceMove(drop_location())
  		else
  			disk.forceMove(drop_location())
  		disk = null
  		update_genes()
  
  /obj/machinery/plantgenes/proc/eject_seed()
  	if (seed && !operation)
  		if(Adjacent(usr) && !issiliconoradminghost(usr))
  			if (!usr.put_in_hands(seed))
  				seed.forceMove(drop_location())
  		else
  			seed.forceMove(drop_location())
  		seed = null
  		update_genes()
  
  /obj/machinery/plantgenes/proc/update_genes()
  