diff --git a/src/main/java/techreborn/tiles/TileAlloySmelter.java b/src/main/java/techreborn/tiles/TileAlloySmelter.java
index 46ee245fb..f17edd69e 100644
--- a/src/main/java/techreborn/tiles/TileAlloySmelter.java
+++ b/src/main/java/techreborn/tiles/TileAlloySmelter.java
@@ -1,6 +1,8 @@
 package techreborn.tiles;
 
 import ic2.api.energy.tile.IEnergyTile;
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
 import ic2.api.tile.IWrenchable;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.inventory.IInventory;
@@ -9,6 +11,7 @@ import net.minecraft.item.ItemStack;
 import net.minecraft.nbt.NBTTagCompound;
 import net.minecraftforge.common.util.ForgeDirection;
 import reborncore.common.util.Inventory;
+import techreborn.api.power.IEnergyInterfaceItem;
 import techreborn.api.recipe.RecipeCrafter;
 import techreborn.api.upgrade.UpgradeHandler;
 import techreborn.init.ModBlocks;
@@ -40,6 +43,28 @@ public class TileAlloySmelter extends TilePowerAcceptor implements IWrenchable,
         super.updateEntity();
         crafter.updateEntity();
         upgrades.tick();
+        charge(3);
+    }
+    
+    public void charge(int slot)
+    {
+    	if(getStackInSlot(slot) != null)
+    	{
+	    	if(getStackInSlot(slot).getItem() instanceof IElectricItem)
+	    	{
+	    		if(getEnergy() != capacity)
+	    		{
+	                ItemStack stack = inventory.getStackInSlot(slot);
+	                double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack);
+	                double CurrentCharge = ElectricItem.manager.getCharge(stack);
+	                if (CurrentCharge != 0) 
+	                {
+	                	ElectricItem.manager.discharge(stack, 5, 4, false, false, false);
+	                    addEnergy(5);
+	                }
+	    		}
+	    	}
+    	}
     }
 
     @Override
diff --git a/src/main/java/techreborn/tiles/TileAssemblingMachine.java b/src/main/java/techreborn/tiles/TileAssemblingMachine.java
index 812b41d3d..1ed37a441 100644
--- a/src/main/java/techreborn/tiles/TileAssemblingMachine.java
+++ b/src/main/java/techreborn/tiles/TileAssemblingMachine.java
@@ -1,6 +1,8 @@
 package techreborn.tiles;
 
 import ic2.api.energy.tile.IEnergyTile;
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
 import ic2.api.tile.IWrenchable;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.inventory.IInventory;
@@ -35,6 +37,28 @@ public class TileAssemblingMachine extends TilePowerAcceptor implements IWrencha
     public void updateEntity() {
         super.updateEntity();
         crafter.updateEntity();
+        charge(3);
+    }
+    
+    public void charge(int slot)
+    {
+    	if(getStackInSlot(slot) != null)
+    	{
+	    	if(getStackInSlot(slot).getItem() instanceof IElectricItem)
+	    	{
+	    		if(getEnergy() != getMaxPower())
+	    		{
+	                ItemStack stack = inventory.getStackInSlot(slot);
+	                double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack);
+	                double CurrentCharge = ElectricItem.manager.getCharge(stack);
+	                if (CurrentCharge != 0) 
+	                {
+	                	ElectricItem.manager.discharge(stack, 5, 4, false, false, false);
+	                    addEnergy(5);
+	                }
+	    		}
+	    	}
+    	}
     }
 
     @Override
diff --git a/src/main/java/techreborn/tiles/TileCentrifuge.java b/src/main/java/techreborn/tiles/TileCentrifuge.java
index 5da8f4430..79c9c6d45 100644
--- a/src/main/java/techreborn/tiles/TileCentrifuge.java
+++ b/src/main/java/techreborn/tiles/TileCentrifuge.java
@@ -1,6 +1,8 @@
 package techreborn.tiles;
 
 import ic2.api.energy.tile.IEnergyTile;
+import ic2.api.item.ElectricItem;
+import ic2.api.item.IElectricItem;
 import ic2.api.tile.IWrenchable;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.inventory.IInventory;
@@ -45,6 +47,28 @@ public class TileCentrifuge extends TilePowerAcceptor implements IWrenchable, IE
     public void updateEntity() {
         super.updateEntity();
         crafter.updateEntity();
+        charge(6);
+    }
+    
+    public void charge(int slot)
+    {
+    	if(getStackInSlot(slot) != null)
+    	{
+	    	if(getStackInSlot(slot).getItem() instanceof IElectricItem)
+	    	{
+	    		if(getEnergy() != getMaxPower())
+	    		{
+	                ItemStack stack = inventory.getStackInSlot(slot);
+	                double MaxCharge = ((IElectricItem) stack.getItem()).getMaxCharge(stack);
+	                double CurrentCharge = ElectricItem.manager.getCharge(stack);
+	                if (CurrentCharge != 0) 
+	                {
+	                	ElectricItem.manager.discharge(stack, 5, 4, false, false, false);
+	                    addEnergy(5);
+	                }
+	    		}
+	    	}
+    	}
     }
 
     @Override