anchor.diff:  			interact(user)
   		return
   	else if(istype(I, /obj/item/disk/plantgene))
  -		if(disk)
  -			to_chat(user, "<span class='warning'>A data disk is already loaded into the machine!</span>")
  -		else
  -			if(!user.transferItemToLoc(I, src))
  -				return
  -			disk = I
  -			to_chat(user, "<span class='notice'>You add [I] to the machine.</span>")
  -			interact(user)
  +		if (operation)
  +			to_chat(user, "<span class='notice'>Please complete current operation.</span>")
  +			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)
   	else
   		..()
   
  
positive.code: 	update_genes()
  	update_icon()
  
  /obj/machinery/plantgenes/proc/update_genes()
  	core_genes = list()
  	reagent_genes = list()
  
negative.code: 				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"
  