anchor.diff:  	if(!loc) //if already qdel'd somehow, we do nothing
   		return
   	if(!(flags&NODECONSTRUCT))
  -		transfer_fingerprints_to(stored)
  -		var/turf/T = loc
  -		stored.forceMove(T)
  +		var/obj/R = new rods_type(src.loc, rods_amount)
  +		transfer_fingerprints_to(R)
  +		qdel(src)
   	..()
   
   /obj/structure/grille/obj_break()
   	if(!broken && !(flags & NODECONSTRUCT))
  -		icon_state = "broken[initial(icon_state)]"
  -		density = 0
  -		broken = 1
  -		stored.amount = 1
  -		var/obj/item/stack/rods/newrods = new(loc)
  -		transfer_fingerprints_to(newrods)
  +		new broken_type(src.loc)
  +		var/obj/R = new rods_type(src.loc, rods_broken)
  +		transfer_fingerprints_to(R)
  +		qdel(src)
   
   
   // shock user with probability prb (if all connections & power are working)
  
positive.code: 		if(!shock(user, 90))
  			user.visible_message("<span class='notice'>[user] rebuilds the broken grille.</span>", \
  								 "<span class='notice'>You rebuild the broken grille.</span>")
  			obj_integrity = max_integrity
  			density = 1
  			broken = 0
  			icon_state = initial(icon_state)
  			R.use(1)
  			return
  
  //window placing begin
  
negative.code: 	density = 0
  	obj_integrity = 20
  	broken = 1
  	rods_amount = 1
  	rods_broken = 0
  	grille_type = /obj/structure/grille
  	broken_type = null
  
  
  /obj/structure/grille/ratvar
  	icon_state = "ratvargrille"
  	desc = "A strangely-shaped grille."
  	broken_type = /obj/structure/grille/ratvar/broken
  
  /obj/structure/grille/ratvar/New()
  	..()
  