diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java
index 191d186b..4274305b 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAnimalGrowth.java
@@ -1,10 +1,8 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import java.util.ArrayList;
+import java.util.List;
+
 import net.minecraft.entity.EntityAgeable;
 import net.minecraft.entity.passive.EntityAnimal;
 import net.minecraft.inventory.IInventory;
@@ -13,9 +11,11 @@ import net.minecraft.tileentity.TileEntity;
 import net.minecraft.util.AxisAlignedBB;
 import net.minecraft.util.BlockPos;
 import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.List;
+import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
 
 public class RitualEffectAnimalGrowth extends RitualEffect
 {
@@ -39,7 +39,7 @@ public class RitualEffectAnimalGrowth extends RitualEffect
 
         double range = 2;
 
-        AxisAlignedBB axisalignedbb = new AxisAlignedBB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 3), (double) (z + 1)).expand(range, 0, range);
+        AxisAlignedBB axisalignedbb = new AxisAlignedBB(pos.offsetUp(), pos.add(1, 3, 1)).expand(range, 0, range);
         List<EntityAgeable> list = world.getEntitiesWithinAABB(EntityAgeable.class, axisalignedbb);
 
         int entityCount = 0;
@@ -79,14 +79,14 @@ public class RitualEffectAnimalGrowth extends RitualEffect
         if (hasVirtus && SoulNetworkHandler.canSyphonFromOnlyNetwork(owner, breedingCost))
         {
             List<EntityAnimal> animalList = world.getEntitiesWithinAABB(EntityAnimal.class, axisalignedbb);
-            TileEntity tile = world.getTileEntity(x, y + 1, z);
+            TileEntity tile = world.getTileEntity(pos.offsetUp());
             IInventory inventory = null;
             if (tile instanceof IInventory)
             {
                 inventory = (IInventory) tile;
             } else
             {
-                tile = world.getTileEntity(x, y - 1, z);
+                tile = world.getTileEntity(pos.offsetDown());
                 if (tile instanceof IInventory)
                 {
                     inventory = (IInventory) tile;
@@ -112,7 +112,7 @@ public class RitualEffectAnimalGrowth extends RitualEffect
                         if (stack != null && entityAnimal.isBreedingItem(stack))
                         {
                             inventory.decrStackSize(i, 1);
-                            entityAnimal.func_146082_f(null);
+                            entityAnimal.setInLove(null);
                             this.canDrainReagent(ritualStone, ReagentRegistry.virtusReagent, virtusDrain, true);
                             SoulNetworkHandler.syphonFromNetwork(owner, breedingCost);
                             break;
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java
index 7dd7beaf..d8e916f8 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectAutoAlchemy.java
@@ -8,8 +8,8 @@ import net.minecraft.inventory.ISidedInventory;
 import net.minecraft.item.ItemStack;
 import net.minecraft.tileentity.TileEntity;
 import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumFacing;
 import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
 import net.minecraftforge.oredict.OreDictionary;
 import WayofTime.alchemicalWizardry.api.alchemy.AlchemyRecipeRegistry;
 import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
@@ -44,7 +44,7 @@ public class RitualEffectAutoAlchemy extends RitualEffect
 
             int flag = 0;
 
-            TileEntity topEntity = world.getTileEntity(x, y + 1, z);
+            TileEntity topEntity = world.getTileEntity(pos.offsetUp());
             if (!(topEntity instanceof IBloodAltar) || !(topEntity instanceof IBloodAltar))
             {
                 return;
@@ -65,10 +65,10 @@ public class RitualEffectAutoAlchemy extends RitualEffect
                 IInventory inputInv1 = null;
                 IInventory inputInv2 = null;
 
-                TileEntity northEntity = world.getTileEntity(x, y, z - 1);
-                TileEntity southEntity = world.getTileEntity(x, y, z + 1);
-                TileEntity eastEntity = world.getTileEntity(x + 1, y, z);
-                TileEntity westEntity = world.getTileEntity(x - 1, y, z);
+                TileEntity northEntity = world.getTileEntity(pos.offsetNorth());
+                TileEntity southEntity = world.getTileEntity(pos.offsetSouth());
+                TileEntity eastEntity = world.getTileEntity(pos.offsetEast());
+                TileEntity westEntity = world.getTileEntity(pos.offsetWest());
 
                 if (northEntity instanceof TEWritingTable)
                 {
@@ -271,7 +271,7 @@ public class RitualEffectAutoAlchemy extends RitualEffect
                                     continue;
                                 }
                                 
-                            	if(!inputInv1.isItemValidForSlot(j, curItem) || (inputInv1 instanceof ISidedInventory && !((ISidedInventory) inputInv1).canExtractItem(j, curItem, ForgeDirection.DOWN.ordinal())))
+                            	if(!inputInv1.isItemValidForSlot(j, curItem) || (inputInv1 instanceof ISidedInventory && !((ISidedInventory) inputInv1).canExtractItem(j, curItem, EnumFacing.DOWN)))
                             	{
                             		continue;
                             	}
@@ -385,10 +385,11 @@ public class RitualEffectAutoAlchemy extends RitualEffect
 
             if (flag > 0)
             {
-                world.markBlockForUpdate(x, y, z + 1);
-                world.markBlockForUpdate(x, y, z - 1);
-                world.markBlockForUpdate(x + 1, y, z);
-                world.markBlockForUpdate(x - 1, y, z);
+            	for(EnumFacing face : EnumFacing.HORIZONTALS)
+            	{
+            		world.markBlockForUpdate(pos.offset(face));
+            	}
+            	
                 SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh() * flag);
             }
         }
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBinding.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBinding.java
index 358b7efd..5e1343db 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBinding.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBinding.java
@@ -1,11 +1,9 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
-import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import net.minecraft.entity.effect.EntityLightningBolt;
 import net.minecraft.entity.item.EntityItem;
 import net.minecraft.entity.player.EntityPlayer;
@@ -15,10 +13,12 @@ import net.minecraft.potion.PotionEffect;
 import net.minecraft.util.AxisAlignedBB;
 import net.minecraft.util.BlockPos;
 import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
 
 public class RitualEffectBinding extends RitualEffect
 {
@@ -46,7 +46,7 @@ public class RitualEffectBinding extends RitualEffect
             if (ritualStone.getVar1() == 0)
             {
                 int d0 = 0;
-                AxisAlignedBB axisalignedbb = new AxisAlignedBB((double) x, (double) y + 1, (double) z, (double) (x + 1), (double) (y + 2), (double) (z + 1)).expand(d0, d0, d0);
+                AxisAlignedBB axisalignedbb = new AxisAlignedBB(pos.offsetUp(), pos.add(1, 2, 1)).expand(d0, d0, d0);
                 List list = world.getEntitiesWithinAABB(EntityItem.class, axisalignedbb);
                 Iterator iterator = list.iterator();
                 EntityItem item;
@@ -66,7 +66,7 @@ public class RitualEffectBinding extends RitualEffect
                     {
                         ritualStone.setVar1(BindingRegistry.getIndexForItem(itemStack) + 1);
                         itemStack.stackSize--;
-                        world.addWeatherEffect(new EntityLightningBolt(world, x, y + 1, z));
+                        world.addWeatherEffect(new EntityLightningBolt(world, pos.getX(), pos.getY() + 1, pos.getZ()));
                         ritualStone.setCooldown(ritualStone.getCooldown() - 1);
                         if(itemStack.stackSize <= 0)
                         {
@@ -77,7 +77,7 @@ public class RitualEffectBinding extends RitualEffect
 
                     if (world.rand.nextInt(10) == 0)
                     {
-                        SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.getDimensionId(), 1, x, y, z);
+                        SpellHelper.sendIndexedParticleToAllAround(world, pos, 20, world.provider.getDimensionId(), 1, pos);
                     }
                 }
 
@@ -90,40 +90,8 @@ public class RitualEffectBinding extends RitualEffect
                 {
                     int lightningPoint = world.rand.nextInt(8);
 
-                    switch (lightningPoint)
-                    {
-                        case 0:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 3, z + 0));
-                            break;
-
-                        case 1:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 3, z + 0));
-                            break;
-
-                        case 2:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z + 4));
-                            break;
-
-                        case 3:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x + 0, y + 3, z - 4));
-                            break;
-
-                        case 4:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z + 3));
-                            break;
-
-                        case 5:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z + 3));
-                            break;
-
-                        case 6:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x + 3, y + 3, z - 3));
-                            break;
-
-                        case 7:
-                            world.addWeatherEffect(new EntityLightningBolt(world, x - 3, y + 3, z - 3));
-                            break;
-                    }
+                    BlockPos newPos = getPositionForLightning(pos, lightningPoint);
+                    world.addWeatherEffect(new EntityLightningBolt(world, newPos.getX(), newPos.getY(), newPos.getZ()));
                 }
 
                 if (ritualStone.getCooldown() <= 0)
@@ -133,7 +101,7 @@ public class RitualEffectBinding extends RitualEffect
 
                     if (spawnedItem != null)
                     {
-                        EntityItem newItem = new EntityItem(world, x + 0.5, y + 1, z + 0.5, spawnedItem.copy());
+                        EntityItem newItem = new EntityItem(world, pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5, spawnedItem.copy());
                         world.spawnEntityInWorld(newItem);
                     }
 
@@ -143,6 +111,39 @@ public class RitualEffectBinding extends RitualEffect
         }
     }
 
+    public BlockPos getPositionForLightning(BlockPos pos, int lightning)
+    {
+    	switch (lightning)
+        {
+            case 0:
+            	return pos.add(4, 3, 0);
+
+            case 1:
+            	return pos.add(-4, 3, 0);
+
+            case 2:
+            	return pos.add(0, 3, 4);
+
+            case 3:
+            	return pos.add(0, 3, -4);
+
+            case 4:
+            	return pos.add(3, 3, 3);
+
+            case 5:
+            	return pos.add(-3, 3, 3);
+
+            case 6:
+            	return pos.add(-3, 3, -3);
+
+            case 7:
+            	return pos.add(3, 3, -3);
+            	
+            default:
+            	return pos.add(0, 3, 0);
+        }
+    }
+    
     @Override
     public int getCostPerRefresh()
     {
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java
index d356547e..fd1d6c92 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectBiomeChanger.java
@@ -1,13 +1,10 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.ModBlocks;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
-import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
-import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
+import java.util.ArrayList;
+import java.util.List;
+
 import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
 import net.minecraft.entity.effect.EntityLightningBolt;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.init.Blocks;
@@ -19,12 +16,17 @@ import net.minecraft.potion.Potion;
 import net.minecraft.potion.PotionEffect;
 import net.minecraft.tileentity.TileEntity;
 import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumFacing;
 import net.minecraft.world.World;
 import net.minecraft.world.biome.BiomeGenBase;
 import net.minecraft.world.chunk.Chunk;
-
-import java.util.ArrayList;
-import java.util.List;
+import WayofTime.alchemicalWizardry.ModBlocks;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
+import WayofTime.alchemicalWizardry.common.tileEntity.TEPlinth;
 
 public class RitualEffectBiomeChanger extends RitualEffect
 {
@@ -43,7 +45,7 @@ public class RitualEffectBiomeChanger extends RitualEffect
 
             if (world.rand.nextInt(15) == 0)
             {
-                world.addWeatherEffect(new EntityLightningBolt(world, x - 1 + world.rand.nextInt(3), y + 1, z - 1 + world.rand.nextInt(3)));
+                world.addWeatherEffect(new EntityLightningBolt(world, pos.getX() - 1 + world.rand.nextInt(3), pos.getY() + 1, pos.getZ() - 1 + world.rand.nextInt(3)));
             }
 
             return;
@@ -89,49 +91,25 @@ public class RitualEffectBiomeChanger extends RitualEffect
                     {
                         if (boolList[i][j])
                         {
-                            if (i - 1 >= 0 && !boolList[i - 1][j])
-                            {
-                                Block block = world.getBlock(x - range + i - 1, y + 1, z - range + j);
-
-                                if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
-                                {
-                                    boolList[i - 1][j] = true;
-                                    isReady = false;
-                                }
-                            }
-
-                            if (j - 1 >= 0 && !boolList[i][j - 1])
-                            {
-                                Block block = world.getBlock(x - range + i, y + 1, z - range + j - 1);
-
-                                if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
-                                {
-                                    boolList[i][j - 1] = true;
-                                    isReady = false;
-                                }
-                            }
-
-                            if (i + 1 <= 2 * range && !boolList[i + 1][j])
-                            {
-                                Block block = world.getBlock(x - range + i + 1, y + 1, z - range + j);
-
-                                if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
-                                {
-                                    boolList[i + 1][j] = true;
-                                    isReady = false;
-                                }
-                            }
-
-                            if (j + 1 <= 2 * range && !boolList[i][j + 1])
-                            {
-                                Block block = world.getBlock(x - range + i, y + 1, z - range + j + 1);
-
-                                if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
-                                {
-                                    boolList[i][j + 1] = true;
-                                    isReady = false;
-                                }
-                            }
+                        	BlockPos position = pos.add(i - range, 1, j - range);
+                        	
+                        	for(EnumFacing face : EnumFacing.HORIZONTALS)
+                        	{
+                        		int iP = i + face.getFrontOffsetX();
+                        		int jP = j + face.getFrontOffsetY();
+                        		
+                        		if(iP >= 0 && iP <= 2 * range && jP >= 0 && jP <= 2 * range && !boolList[iP][jP])
+                        		{
+                            		BlockPos newPos = position.add(face.getDirectionVec());
+                            		IBlockState state = world.getBlockState(newPos);
+                            		Block block = state.getBlock();
+                            		if (!ModBlocks.largeBloodStoneBrick.equals(block) && !ModBlocks.bloodStoneBrick.equals(block))
+                                    {
+                                        boolList[iP][jP] = true;
+                                        isReady = false;
+                                    }
+                        		}
+                        	}
                         }
                     }
                 }
@@ -151,7 +129,8 @@ public class RitualEffectBiomeChanger extends RitualEffect
                     }
 
                     boolean isItemConsumed = false;
-                    TileEntity tileEntity = world.getTileEntity(x + i, y, z + j);
+                    BlockPos newPos = pos.add(i, 0, j);
+                    TileEntity tileEntity = world.getTileEntity(newPos);
 
                     if (!(tileEntity instanceof TEPlinth))
                     {
@@ -169,7 +148,7 @@ public class RitualEffectBiomeChanger extends RitualEffect
                         {
                             if (itemTest instanceof ItemBlock)
                             {
-                                Block item = ((ItemBlock) itemTest).field_150939_a;
+                                Block item = ((ItemBlock) itemTest).getBlock();
                                 if (item == (Blocks.sand))
                                 {
                                     humidity -= 0.1f;
@@ -230,8 +209,8 @@ public class RitualEffectBiomeChanger extends RitualEffect
                     if (isItemConsumed)
                     {
                         tilePlinth.setInventorySlotContents(0, null);
-                        world.markBlockForUpdate(x + i, y, z + j);
-                        world.addWeatherEffect(new EntityLightningBolt(world, x + i, y + 1, z + j));
+                        world.markBlockForUpdate(newPos);
+                        world.addWeatherEffect(new EntityLightningBolt(world, newPos.getX(), newPos.getY() + 1, newPos.getZ()));
                     }
                 }
             }
@@ -269,10 +248,11 @@ public class RitualEffectBiomeChanger extends RitualEffect
                 {
                     if (boolList[i][j])
                     {
-                        Chunk chunk = world.getChunkFromBlockCoords(x - range + i, z - range + j);
+                    	BlockPos newPos = pos.add(i - range, 0, j - range);
+                        Chunk chunk = world.getChunkFromBlockCoords(newPos);
                         byte[] byteArray = chunk.getBiomeArray();
-                        int moduX = (x - range + i) % 16;
-                        int moduZ = (z - range + j) % 16;
+                        int moduX = (newPos.getX()) % 16;
+                        int moduZ = (newPos.getZ()) % 16;
 
                         if (moduX < 0)
                         {
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java
index 0871c350..231a638a 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectContainment.java
@@ -1,13 +1,8 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.AlchemicalWizardry;
-import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
-import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
-import cpw.mods.fml.relauncher.ReflectionHelper;
+import java.util.ArrayList;
+import java.util.List;
+
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.monster.EntityCreeper;
@@ -15,9 +10,14 @@ import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.potion.PotionEffect;
 import net.minecraft.util.BlockPos;
 import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.List;
+import net.minecraftforge.fml.relauncher.ReflectionHelper;
+import WayofTime.alchemicalWizardry.AlchemicalWizardry;
+import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
 
 public class RitualEffectContainment extends RitualEffect
 {
@@ -41,7 +41,7 @@ public class RitualEffectContainment extends RitualEffect
         } else
         {
             int d0 = 5;
-            List<Entity> entityList = SpellHelper.getEntitiesInRange(world, x + 0.5, y + 0.5, z + 0.5, d0, d0);
+            List<Entity> entityList = SpellHelper.getEntitiesInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, d0, d0);
             boolean flag = false;
             boolean hasCrepitous = this.canDrainReagent(ritualStone, ReagentRegistry.crepitousReagent, crepitousDrain, false);
             boolean hasTerrae = this.canDrainReagent(ritualStone, ReagentRegistry.terraeReagent, terraeDrain, false);
@@ -62,9 +62,9 @@ public class RitualEffectContainment extends RitualEffect
                 }
 
 
-                double xDif = livingEntity.posX - (x + 0.5);
-                double yDif = livingEntity.posY - (y + 3);
-                double zDif = livingEntity.posZ - (z + 0.5);
+                double xDif = livingEntity.posX - (pos.getX() + 0.5);
+                double yDif = livingEntity.posY - (pos.getY() + 3);
+                double zDif = livingEntity.posZ - (pos.getZ() + 0.5);
                 livingEntity.motionX = -0.05 * xDif;
                 livingEntity.motionY = -0.05 * yDif;
                 livingEntity.motionZ = -0.05 * zDif;
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrafting.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrafting.java
index a675082a..630665a0 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrafting.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrafting.java
@@ -16,8 +16,8 @@ import net.minecraft.item.crafting.CraftingManager;
 import net.minecraft.nbt.NBTTagCompound;
 import net.minecraft.tileentity.TileEntity;
 import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumFacing;
 import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
 import net.minecraftforge.oredict.OreDictionary;
 import WayofTime.alchemicalWizardry.api.Int3;
 import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
@@ -92,8 +92,8 @@ public class RitualEffectCrafting extends RitualEffect
             	{
         			int gridSpace = (i+1)*3 + (j+1);
 
-            		Int3 pos = this.getSlotPositionForDirection(gridSpace, direction);
-            		TileEntity inv = world.getTileEntity(x + pos.xCoord, y + pos.yCoord, z + pos.zCoord);
+            		Int3 position = this.getSlotPositionForDirection(gridSpace, direction);
+            		TileEntity inv = world.getTileEntity(pos.add(position.xCoord, position.yCoord, position.zCoord));
             		if(inv instanceof IInventory)
             		{
             			if(((IInventory) inv).getSizeInventory() <= slotDesignation || !((IInventory) inv).isItemValidForSlot(slotDesignation, ((IInventory) inv).getStackInSlot(slotDesignation)))
@@ -133,10 +133,10 @@ public class RitualEffectCrafting extends RitualEffect
                 
                 List<IInventory> invList = new ArrayList();
 
-                TileEntity northEntity = world.getTileEntity(x, y-1, z - 2);
-                TileEntity southEntity = world.getTileEntity(x, y-1, z + 2);
-                TileEntity eastEntity = world.getTileEntity(x + 2, y-1, z);
-                TileEntity westEntity = world.getTileEntity(x - 2, y-1, z);
+                TileEntity northEntity = world.getTileEntity(pos.add(0, -1, -2));
+                TileEntity southEntity = world.getTileEntity(pos.add(0, -1, 2));
+                TileEntity eastEntity = world.getTileEntity(pos.add(2, -1, 0));
+                TileEntity westEntity = world.getTileEntity(pos.add(-2, -1, 0));
                 
                 switch(direction)
                 {
@@ -239,7 +239,7 @@ public class RitualEffectCrafting extends RitualEffect
 
                 if (outputInv != null)
                 {
-                	if(!(!limitToSingleStack ? SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, ForgeDirection.DOWN) : SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, ForgeDirection.DOWN, true, returnStack.getMaxStackSize())))
+                	if(!(!limitToSingleStack ? SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, EnumFacing.DOWN) : SpellHelper.canInsertStackFullyIntoInventory(returnStack, outputInv, EnumFacing.DOWN, true, returnStack.getMaxStackSize())))
                 	{
                 		tag.setBoolean("didLastCraftFail", true);
                 		return;
@@ -331,7 +331,7 @@ public class RitualEffectCrafting extends RitualEffect
                 	
                 	/* The recipe is valid and the items have been found */
                 	                	
-                	SpellHelper.insertStackIntoInventory(CraftingManager.getInstance().findMatchingRecipe(inventory, world), outputInv, ForgeDirection.DOWN);
+                	SpellHelper.insertStackIntoInventory(CraftingManager.getInstance().findMatchingRecipe(inventory, world), outputInv, EnumFacing.DOWN);
                 	
                 	for(Entry<Integer, Map<Integer, Integer>> entry1 : syphonMap.entrySet())
                 	{
@@ -366,10 +366,10 @@ public class RitualEffectCrafting extends RitualEffect
                     	this.canDrainReagent(ritualStone, ReagentRegistry.potentiaReagent, potentiaDrain, true);
                     }
                     
-                    world.markBlockForUpdate(x, y-1, z + 2);
-                    world.markBlockForUpdate(x, y-1, z - 2);
-                    world.markBlockForUpdate(x + 2, y-1, z);
-                    world.markBlockForUpdate(x - 2, y-1, z);
+                    world.markBlockForUpdate(pos.add(0, 1, 2));
+                    world.markBlockForUpdate(pos.add(0, 1, -2));
+                    world.markBlockForUpdate(pos.add(2, 1, 0));
+                    world.markBlockForUpdate(pos.add(-2, 1, 0));
                     
 //                    long endTime = System.nanoTime();
 //
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java
index 6601a171..f5d4296a 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectCrushing.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
 import net.minecraft.entity.item.EntityItem;
 import net.minecraft.init.Blocks;
 import net.minecraft.inventory.IInventory;
@@ -12,8 +13,8 @@ import net.minecraft.item.ItemBlock;
 import net.minecraft.item.ItemStack;
 import net.minecraft.tileentity.TileEntity;
 import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumFacing;
 import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
 import WayofTime.alchemicalWizardry.ModBlocks;
 import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
 import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
@@ -44,7 +45,7 @@ public class RitualEffectCrushing extends RitualEffect
             return;
         }
 
-        TileEntity tile = world.getTileEntity(x, y + 1, z);
+        TileEntity tile = world.getTileEntity(pos.offsetUp());
         IInventory tileEntity;
 
         if (tile instanceof IInventory)
@@ -107,30 +108,32 @@ public class RitualEffectCrushing extends RitualEffect
                 {
                     for (int k = -1; k <= 1; k++)
                     {
-                        Block block = world.getBlock(x + i, y + j, z + k);
-                        int meta = world.getBlockMetadata(x + i, y + j, z + k);
-                        if(block.getBlockHardness(world, x + i, y + j, z + k) == -1)
+                    	BlockPos newPos = pos.add(i, j, k);
+                    	IBlockState state = world.getBlockState(newPos);
+                        Block block = state.getBlock();
+                        
+                        if(block.getBlockHardness(world, newPos) == -1)
                         {
                         	continue;
                         }
 
-                        if (block != null && !world.isAirBlock(x + i, y + j, z + k))
+                        if (block != null && !world.isAirBlock(newPos))
                         {
                             if ((block.equals(ModBlocks.ritualStone) || block.equals(ModBlocks.blockMasterStone)) || SpellHelper.isBlockFluid(block))
                             {
                                 continue;
                             }
 
-                            if (isSilkTouch && block.canSilkHarvest(world, null, x + i, y + j, z + k, meta))
+                            if (isSilkTouch && block.canSilkHarvest(world, newPos, state, null))
                             {
-                                ItemStack item = new ItemStack(block, 1, meta);
+                                ItemStack item = new ItemStack(block, 1, block.getMetaFromState(state));
                                 ItemStack copyStack = item.copyItemStack(item);
 
-                                SpellHelper.insertStackIntoInventory(copyStack, tileEntity, ForgeDirection.DOWN);
+                                SpellHelper.insertStackIntoInventory(copyStack, tileEntity, EnumFacing.DOWN);
 
                                 if (copyStack.stackSize > 0)
                                 {
-                                    world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
+                                    world.spawnEntityInWorld(new EntityItem(world, pos.getX() + 0.5, pos.getY() + 2, pos.getZ() + 0.5, copyStack));
                                 }
 
                                 if (hasCrystallos)
@@ -139,7 +142,7 @@ public class RitualEffectCrushing extends RitualEffect
                                 }
                             } else
                             {
-                                ArrayList<ItemStack> itemDropList = block.getDrops(world, x + i, y + j, z + k, meta, fortuneLevel);
+                                List<ItemStack> itemDropList = block.getDrops(world, newPos, state, fortuneLevel);
 
                                 if (itemDropList != null)
                                 {
@@ -156,10 +159,10 @@ public class RitualEffectCrushing extends RitualEffect
                                             this.canDrainReagent(ritualStone, ReagentRegistry.incendiumReagent, incendiumDrain, true);
                                         }
 
-                                        SpellHelper.insertStackIntoInventory(copyStack, tileEntity, ForgeDirection.DOWN);
+                                        SpellHelper.insertStackIntoInventory(copyStack, tileEntity, EnumFacing.DOWN);
                                         if (copyStack.stackSize > 0)
                                         {
-                                            world.spawnEntityInWorld(new EntityItem(world, x + 0.4, y + 2, z + 0.5, copyStack));
+                                            world.spawnEntityInWorld(new EntityItem(world, pos.getX() + 0.5, pos.getY() + 2, pos.getZ() + 0.5, copyStack));
                                         }  
                                     }
                                     
@@ -177,8 +180,8 @@ public class RitualEffectCrushing extends RitualEffect
                                     }
                                 }
                             }
-                            world.setBlockToAir(x + i, y + j, z + k);
-                            world.playSoundEffect(x + i, y + j, z + k, "mob.endermen.portal", 1.0F, 1.0F);
+                            world.setBlockToAir(newPos);
+                            world.playSoundEffect(newPos.getX(), newPos.getY(), newPos.getZ(), "mob.endermen.portal", 1.0F, 1.0F);
 
                             SoulNetworkHandler.syphonFromNetwork(owner, this.getCostPerRefresh());
 
@@ -197,7 +200,7 @@ public class RitualEffectCrushing extends RitualEffect
             Item item = stack.getItem();
             if (item instanceof ItemBlock)
             {
-                Block block = ((ItemBlock) item).field_150939_a;
+                Block block = ((ItemBlock) item).getBlock();
 
                 if (block == Blocks.cobblestone || block == Blocks.stone)
                 {
@@ -221,7 +224,7 @@ public class RitualEffectCrushing extends RitualEffect
             Item item = stack.getItem();
             if (item instanceof ItemBlock)
             {
-                Block block = ((ItemBlock) item).field_150939_a;
+                Block block = ((ItemBlock) item).getBlock();
 
                 if (hasIncendium)
                 {
@@ -240,65 +243,6 @@ public class RitualEffectCrushing extends RitualEffect
         return stack;
     }
 
-    public boolean isSilkTouch(World world, int x, int y, int z)
-    {
-        int index = 0;
-        for (int i = -2; i <= 2; i++)
-        {
-            for (int j = -2; j <= 2; j++)
-            {
-                int index1 = Math.abs(i);
-                int index2 = Math.abs(j);
-
-                if ((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2))
-                {
-                    Block block = world.getBlock(x + i, y + 1, z + j);
-                    if (block == Blocks.gold_block)
-                    {
-                        index++;
-                    }
-                }
-            }
-        }
-
-        return index >= 12;
-    }
-
-    public int getFortuneLevel(World world, int x, int y, int z)
-    {
-        int index = 0;
-        for (int i = -2; i <= 2; i++)
-        {
-            for (int j = -2; j <= 2; j++)
-            {
-                int index1 = Math.abs(i);
-                int index2 = Math.abs(j);
-
-                if ((index1 == 2 && (index2 == 2 || index2 == 1)) || (index1 == 1 && index2 == 2))
-                {
-                    Block block = world.getBlock(x + i, y + 1, z + j);
-                    if (block == Blocks.emerald_block || block == Blocks.diamond_block)
-                    {
-                        index++;
-                    }
-                }
-            }
-        }
-
-        if (index >= 12)
-        {
-            return 3;
-        } else if (index >= 8)
-        {
-            return 2;
-        } else if (index >= 4)
-        {
-            return 1;
-        }
-
-        return 0;
-    }
-
     @Override
     public int getCostPerRefresh()
     {
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectDemonPortal.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectDemonPortal.java
index f4313d20..2a93bb54 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectDemonPortal.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectDemonPortal.java
@@ -67,7 +67,7 @@ public class RitualEffectDemonPortal extends RitualEffect
         			{
         				if(rand.nextInt(10) == 0)
         				{
-        					this.createRandomLightning(world, x, y, z);
+        					this.createRandomLightning(world, pos.getX(), pos.getY(), pos.getZ());
         				}
         				reagentAmount += drainAmount;
         				
@@ -81,9 +81,9 @@ public class RitualEffectDemonPortal extends RitualEffect
         	
         	if(reagentsFulfilled && checkCreatePortal(ritualStone))
         	{
-        		world.setBlock(x, y+1, z, ModBlocks.blockDemonPortal);
+        		world.setBlockState(pos.offsetUp(), ModBlocks.blockDemonPortal.getDefaultState());
         		
-        		TEDemonPortal portal = (TEDemonPortal) world.getTileEntity(x, y + 1, z);
+        		TEDemonPortal portal = (TEDemonPortal) world.getTileEntity(pos.offsetUp());
         		portal.start();
         		
         		ritualStone.setActive(false);
@@ -95,11 +95,12 @@ public class RitualEffectDemonPortal extends RitualEffect
 
     public boolean checkCreatePortal(IMasterRitualStone ritualStone)
     {
-    	TileEntity entity = ritualStone.getWorld().getTileEntity(ritualStone.getXCoord(), ritualStone.getYCoord() + 1, ritualStone.getZCoord());
+    	BlockPos pos = ritualStone.getPosition();
+    	TileEntity entity = ritualStone.getWorldObj().getTileEntity(pos.offsetUp());
     	if(entity instanceof IBloodAltar)
     	{
     		IBloodAltar altar = (IBloodAltar)entity;
-    		if(altar.hasDemonBlood() && ritualStone.getWorld().isAirBlock(ritualStone.getXCoord(), ritualStone.getYCoord() + 2, ritualStone.getZCoord()))
+    		if(altar.hasDemonBlood() && ritualStone.getWorldObj().isAirBlock(pos.offsetUp(2)))
     		{
     			return true;
     		}
@@ -131,13 +132,11 @@ public class RitualEffectDemonPortal extends RitualEffect
     
     public boolean checkJars(IMasterRitualStone ritualStone)
     {
-    	int x = ritualStone.getXCoord();
-    	int y = ritualStone.getYCoord();
-    	int z = ritualStone.getZCoord();
+    	BlockPos position = ritualStone.getPosition();
     	
     	for(Int3 pos : jarLocations)
     	{
-    		if(!(ritualStone.getWorld().getTileEntity(x + pos.xCoord, y + pos.yCoord, z + pos.zCoord) instanceof TEBellJar))
+    		if(!(ritualStone.getWorldObj().getTileEntity(position.add(pos.xCoord, pos.yCoord, pos.zCoord)) instanceof TEBellJar))
     		{
     			return false;
     		}
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java
index 3ed4f53b..a44aae46 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEllipsoid.java
@@ -3,7 +3,7 @@ package WayofTime.alchemicalWizardry.common.rituals;
 import java.util.ArrayList;
 import java.util.List;
 
-import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.inventory.IInventory;
 import net.minecraft.item.ItemBlock;
@@ -13,6 +13,7 @@ import net.minecraft.potion.Potion;
 import net.minecraft.potion.PotionEffect;
 import net.minecraft.tileentity.TileEntity;
 import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumFacing;
 import net.minecraft.world.World;
 import WayofTime.alchemicalWizardry.api.Int3;
 import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
@@ -32,7 +33,7 @@ public class RitualEffectEllipsoid extends RitualEffect
         World world = ritualStone.getWorldObj();
         BlockPos pos = ritualStone.getPosition();
 
-        TileEntity tile = world.getTileEntity(x, y + 1, z);
+        TileEntity tile = world.getTileEntity(pos.offsetUp());
 
         if (!(tile instanceof IInventory) || ((IInventory) tile).getSizeInventory() < 3)
         {
@@ -61,7 +62,7 @@ public class RitualEffectEllipsoid extends RitualEffect
             entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
         } else
         {
-        	tile = world.getTileEntity(x, y-1, z);
+        	tile = world.getTileEntity(pos.offsetDown());
         	if(!(tile instanceof IInventory))
         	{
         		return;
@@ -114,7 +115,7 @@ public class RitualEffectEllipsoid extends RitualEffect
         	
             while(j <= ySize)
             {
-            	if(y + j < 0)
+            	if(pos.getY() + j < 0)
             	{
             		j++;
             		continue;
@@ -143,36 +144,29 @@ public class RitualEffectEllipsoid extends RitualEffect
                         
                         count--;
 
-                        Block block = world.getBlock(x + i, y + j, z + k);
-                        
-                        if (!block.isAir(world, x + i, y + j, z + k))
+                        BlockPos newPos = pos.add(i, j, k);
+                                                
+                        if (!world.isAirBlock(newPos))
                         {
                         	k++;
                             continue;
                         } else
                         {
                         	//This is pulled from the ItemBlock's placing calls
-                        	int i1 = placedBlock.getMetadata(stack.getItemDamage());
-                            int j1 = placedBlock.field_150939_a.onBlockPlaced(world, x + i, y + j, z + k, 0, 0, 0, 0, i1);
+                        	int newState = placedBlock.getMetadata(stack.getMetadata());
+                            IBlockState iblockstate1 = placedBlock.block.onBlockPlaced(world, newPos, EnumFacing.UP, 0, 0, 0, newState, null);
 
-                            if (placedBlock.placeBlockAt(stack, null, world, x + i, y + j, z + k, 0, 0, 0, 0, j1))
+                            if (placedBlock.placeBlockAt(stack, null, world, pos, EnumFacing.UP, 0, 0, 0, iblockstate1))
                             {
-                                world.playSoundEffect((double)(x + i + 0.5F), (double)(y + j + 0.5F), (double)(z + k + 0.5F), placedBlock.field_150939_a.stepSound.func_150496_b(), (placedBlock.field_150939_a.stepSound.getVolume() + 1.0F) / 2.0F, placedBlock.field_150939_a.stepSound.getPitch() * 0.8F);
+                                world.playSoundEffect((double)((float)pos.getX() + 0.5F), (double)((float)pos.getY() + 0.5F), (double)((float)pos.getZ() + 0.5F), placedBlock.block.stepSound.getPlaceSound(), (placedBlock.block.stepSound.getVolume() + 1.0F) / 2.0F, placedBlock.block.stepSound.getFrequency() * 0.8F);
                                 --stack.stackSize;
-                                if(stack.stackSize <= 0)
-                                {
-                                	inv.setInventorySlotContents(slot, null);
-                                }
-                                
-                                this.setLastPosition(ritualStone.getCustomRitualTag(), new Int3(i, j, k));
-                                
-                                incrementNext = true;
-                                SoulNetworkHandler.syphonFromNetwork(owner, cost);    
-                                
                             }
                             
-//                        	world.setBlock(x + i, y + j, z + k, Blocks.stone);
-                        	
+                            this.setLastPosition(ritualStone.getCustomRitualTag(), new Int3(i, j, k));
+                            
+                            incrementNext = true;
+                            SoulNetworkHandler.syphonFromNetwork(owner, cost); 
+                                                    	
                             k++;
                         }                      
                     }
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEvaporation.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEvaporation.java
index 1c4717db..7d83e46c 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEvaporation.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectEvaporation.java
@@ -1,21 +1,23 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumFacing;
+import net.minecraft.world.World;
 import WayofTime.alchemicalWizardry.ModBlocks;
 import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
 import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
 import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
 import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
 import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
-import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.init.Blocks;
-import net.minecraft.potion.Potion;
-import net.minecraft.potion.PotionEffect;
-import net.minecraft.util.BlockPos;
-import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public class RitualEffectEvaporation extends RitualEffect
 {
@@ -40,7 +42,8 @@ public class RitualEffectEvaporation extends RitualEffect
             entityOwner.addPotionEffect(new PotionEffect(Potion.confusion.id, 80));
         } else
         {
-            Block block1 = world.getBlock(x, y - 1, z);
+        	IBlockState state1 = world.getBlockState(pos.offsetDown());
+            Block block1 = state1.getBlock();
             int range = this.getRadiusForModifierBlock(block1);
 
             boolean[][][] boolList = new boolean[range * 2 + 1][range * 2 + 1][range * 2 + 1];
@@ -71,65 +74,26 @@ public class RitualEffectEvaporation extends RitualEffect
                         {
                             if (boolList[i][j][k])
                             {
-                                if (i - 1 >= 0 && !boolList[i - 1][j][k])
-                                {
-                                    Block block = world.getBlock(x - range + i - 1, y - range + j, z - range + k);
-                                    if (world.isAirBlock(x - range + i - 1, y - range + j, z - range + k) || block == ModBlocks.blockSpectralContainer)
-                                    {
-                                        boolList[i - 1][j][k] = true;
-                                        isReady = false;
-                                    }
-                                }
-
-                                if (j - 1 >= 0 && !boolList[i][j - 1][k])
-                                {
-                                    Block block = world.getBlock(x - range + i, y - range + j - 1, z - range + k);
-                                    if (world.isAirBlock(x - range + i, y - range + j - 1, z - range + k) || block == ModBlocks.blockSpectralContainer)
-                                    {
-                                        boolList[i][j - 1][k] = true;
-                                        isReady = false;
-                                    }
-                                }
-
-                                if (k - 1 >= 0 && !boolList[i][j][k - 1])
-                                {
-                                    Block block = world.getBlock(x - range + i, y - range + j, z - range + k - 1);
-                                    if (world.isAirBlock(x - range + i, y - range + j, z - range + k - 1) || block == ModBlocks.blockSpectralContainer)
-                                    {
-                                        boolList[i][j][k - 1] = true;
-                                        isReady = false;
-                                    }
-                                }
-
-                                if (i + 1 <= 2 * range && !boolList[i + 1][j][k])
-                                {
-                                    Block block = world.getBlock(x - range + i + 1, y - range + j, z - range + k);
-                                    if (world.isAirBlock(x - range + i + 1, y - range + j, z - range + k) || block == ModBlocks.blockSpectralContainer)
-                                    {
-                                        boolList[i + 1][j][k] = true;
-                                        isReady = false;
-                                    }
-                                }
-
-                                if (j + 1 <= 2 * range && !boolList[i][j + 1][k])
-                                {
-                                    Block block = world.getBlock(x - range + i, y - range + j + 1, z - range + k);
-                                    if (world.isAirBlock(x - range + i, y - range + j + 1, z - range + k) || block == ModBlocks.blockSpectralContainer)
-                                    {
-                                        boolList[i][j + 1][k] = true;
-                                        isReady = false;
-                                    }
-                                }
-
-                                if (k + 1 <= 2 * range && !boolList[i][j][k + 1])
-                                {
-                                    Block block = world.getBlock(x - range + i, y - range + j, z - range + k + 1);
-                                    if (world.isAirBlock(x - range + i, y - range + j, z - range + k + 1) || block == ModBlocks.blockSpectralContainer)
-                                    {
-                                        boolList[i][j][k + 1] = true;
-                                        isReady = false;
-                                    }
-                                }
+                            	BlockPos position = pos.add(i - range, j - range, k - range);
+                            	
+                            	for(EnumFacing face : EnumFacing.VALUES)
+                            	{
+                            		int iP = i + face.getFrontOffsetX();
+                            		int jP = j + face.getFrontOffsetY();
+                            		int kP = k + face.getFrontOffsetZ();
+                            		
+                            		if(iP >= 0 && iP <= 2 * range && jP >= 0 && jP <= 2 * range && kP >= 0 && kP <= 2 * range && !boolList[iP][jP][kP])
+                            		{
+                                		BlockPos newPos = position.add(face.getDirectionVec());
+                                		IBlockState state = world.getBlockState(newPos);
+                                		Block block = state.getBlock();
+                                		if (world.isAirBlock(newPos) || block == ModBlocks.blockSpectralContainer)
+                                        {
+                                            boolList[iP][jP][kP] = true;
+                                            isReady = false;
+                                        }
+                            		}
+                            	}
                             }
                         }
                     }
@@ -147,11 +111,13 @@ public class RitualEffectEvaporation extends RitualEffect
                             continue;
                         }
 
-                        Block block = world.getBlock(x + i - range, y + j - range, z + k - range);
+                        BlockPos newPos = pos.add(i - range, j - range, k - range);
+                        IBlockState state = world.getBlockState(newPos);
+                        Block block = state.getBlock();
 
                         if (block == ModBlocks.blockSpectralContainer)
                         {
-                            world.setBlockToAir(x + i - range, y + j - range, z + k - range);
+                            world.setBlockToAir(newPos);
                         }
                     }
                 }
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java
index a7342a9d..92e57285 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectExpulsion.java
@@ -1,5 +1,24 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.inventory.IInventory;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.BlockPos;
+import net.minecraft.util.EnumParticleTypes;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.World;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.event.entity.living.EnderTeleportEvent;
 import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
 import WayofTime.alchemicalWizardry.api.items.interfaces.IBindable;
 import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
@@ -9,23 +28,6 @@ import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
 import WayofTime.alchemicalWizardry.common.items.EnergyItems;
 import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
 import WayofTime.alchemicalWizardry.common.spell.simple.SpellTeleport;
-import net.minecraft.block.Block;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.item.ItemStack;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.util.BlockPos;
-import net.minecraft.util.MathHelper;
-import net.minecraft.world.World;
-import net.minecraftforge.common.MinecraftForge;
-import net.minecraftforge.event.entity.living.EnderTeleportEvent;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
 
 public class RitualEffectExpulsion extends RitualEffect
 {
@@ -52,10 +54,10 @@ public class RitualEffectExpulsion extends RitualEffect
 
             int teleportDistance = hasVirtus ? 300 : 100;
             int range = hasPotentia ? 50 : 25;
-            List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, x + 0.5, y + 0.5, z + 0.5, range, range);
+            List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, range, range);
             boolean flag = false;
 
-            TileEntity tile = world.getTileEntity(x, y + 1, z);
+            TileEntity tile = world.getTileEntity(pos.offsetUp());
             IInventory inventoryTile = null;
             if (tile instanceof IInventory)
             {
@@ -116,7 +118,7 @@ public class RitualEffectExpulsion extends RitualEffect
 
             int teleportDistance = hasVirtus ? 300 : 100;
             int range = hasPotentia ? 50 : 25;
-            List<EntityLivingBase> livingList = SpellHelper.getLivingEntitiesInRange(world, x + 0.5, y + 0.5, z + 0.5, range, range);
+            List<EntityLivingBase> livingList = SpellHelper.getLivingEntitiesInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, range, range);
             boolean flag = false;
 
             for (EntityLivingBase livingEntity : livingList)
@@ -195,18 +197,22 @@ public class RitualEffectExpulsion extends RitualEffect
         double d5 = lastZ;
         SpellTeleport.moveEntityViaTeleport(entityLiving, event.targetX, event.targetY, event.targetZ);
         boolean flag = false;
+        
+        
         int i = MathHelper.floor_double(entityLiving.posX);
         int j = MathHelper.floor_double(entityLiving.posY);
         int k = MathHelper.floor_double(entityLiving.posZ);
         int l;
 
-        if (entityLiving.worldObj.blockExists(i, j, k))
+//        if (entityLiving.worldObj.blockExists(i, j, k))
         {
             boolean flag1 = false;
 
             while (!flag1 && j > 0)
             {
-                Block block = entityLiving.worldObj.getBlock(i, j - 1, k);
+            	BlockPos newPos = new BlockPos(i, j - 1, k);
+            	IBlockState state = entityLiving.worldObj.getBlockState(newPos);
+                Block block = state.getBlock();
 
                 if (block != null && block.getMaterial().blocksMovement())
                 {
@@ -222,7 +228,7 @@ public class RitualEffectExpulsion extends RitualEffect
             {
                 SpellTeleport.moveEntityViaTeleport(entityLiving, entityLiving.posX, entityLiving.posY, entityLiving.posZ);
 
-                if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.boundingBox).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.boundingBox))
+                if (entityLiving.worldObj.getCollidingBoundingBoxes(entityLiving, entityLiving.getBoundingBox()).isEmpty() && !entityLiving.worldObj.isAnyLiquid(entityLiving.getBoundingBox()))
                 {
                     flag = true;
                 }
@@ -246,7 +252,7 @@ public class RitualEffectExpulsion extends RitualEffect
                 double d7 = d3 + (entityLiving.posX - d3) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D;
                 double d8 = d4 + (entityLiving.posY - d4) * d6 + entityLiving.worldObj.rand.nextDouble() * (double) entityLiving.height;
                 double d9 = d5 + (entityLiving.posZ - d5) * d6 + (entityLiving.worldObj.rand.nextDouble() - 0.5D) * (double) entityLiving.width * 2.0D;
-                entityLiving.worldObj.spawnParticle("portal", d7, d8, d9, (double) f, (double) f1, (double) f2);
+                entityLiving.worldObj.spawnParticle(EnumParticleTypes.PORTAL, d7, d8, d9, (double) f, (double) f1, (double) f2);
             }
             return true;
         }
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java
index a3f2ae1b..cd446a38 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredEarth.java
@@ -1,18 +1,18 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import java.util.ArrayList;
+import java.util.List;
+
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.effect.EntityLightningBolt;
 import net.minecraft.util.AxisAlignedBB;
 import net.minecraft.util.BlockPos;
 import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.List;
+import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
 
 public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fall damage in the area of effect
 {
@@ -33,6 +33,10 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
 
         if (ritualStone.getCooldown() > 0)
         {
+        	int x = pos.getX();
+        	int y = pos.getY();
+        	int z = pos.getZ();
+        	
             world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z + 4));
             world.addWeatherEffect(new EntityLightningBolt(world, x + 4, y + 5, z - 4));
             world.addWeatherEffect(new EntityLightningBolt(world, x - 4, y + 5, z - 4));
@@ -46,14 +50,11 @@ public class RitualEffectFeatheredEarth extends RitualEffect //Nullifies all fal
 
         int range = this.getHorizontalRangeForReagent(hasTerrae, hasOrbisTerrae);
         int verticalRange = hasAether ? 60 : 30;
-        List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range));
+        List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).expand(range, verticalRange, range));
         int entityCount = 0;
         boolean flag = false;
 
-        for (EntityLivingBase entity : entities)
-        {
-            entityCount++;
-        }
+        entityCount += entities.size();
 
         if (currentEssence < this.getCostPerRefresh() * entityCount)
         {
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java
index 57ae3848..8d0e9579 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFeatheredKnife.java
@@ -50,9 +50,10 @@ public class RitualEffectFeatheredKnife extends RitualEffect
             {
                 for (int k = -10; k <= 10; k++)
                 {
-                    if (world.getTileEntity(x + i, y + k, z + j) instanceof IBloodAltar)
+                	BlockPos newPos = pos.add(i, k, j);
+                    if (world.getTileEntity(newPos) instanceof IBloodAltar)
                     {
-                        tileAltar = (IBloodAltar) world.getTileEntity(x + i, y + k, z + j);
+                        tileAltar = (IBloodAltar) world.getTileEntity(newPos);
                         testFlag = true;
                     }
                 }
@@ -68,10 +69,9 @@ public class RitualEffectFeatheredKnife extends RitualEffect
 
         double range = hasReductus ? 8 : 15;
         double vertRange = hasReductus ? 8 : 20;
-        List<EntityPlayer> list = SpellHelper.getPlayersInRange(world, x + 0.5, y + 0.5, z + 0.5, range, vertRange);
+        List<EntityPlayer> list = SpellHelper.getPlayersInRange(world, pos.getX(), pos.getY(), pos.getZ(), range, vertRange);
 
         int entityCount = 0;
-        boolean flag = false;
 
         if (currentEssence < this.getCostPerRefresh() * list.size())
         {
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java
index d2423a38..b3b7102a 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFlight.java
@@ -32,10 +32,10 @@ public class RitualEffectFlight extends RitualEffect
         BlockPos pos = ritualStone.getPosition();
 
         int range = 20;
-        int verticalRange = 30;
-        AxisAlignedBB axis = new AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1).expand(range, verticalRange, range);
-        axis.maxY = 256;
-        axis.minY = 0;
+        int verticalRange = 70;
+        AxisAlignedBB axis = new AxisAlignedBB(pos, pos.add(1, 1, 1)).expand(range, verticalRange, range);
+//        axis.maxY = 256;
+//        axis.minY = 0;
         List<EntityPlayer> entities = world.getEntitiesWithinAABB(EntityPlayer.class, axis);
         int entityCount = 0;
 
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java
index 3447421b..36bb9bf8 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectFullStomach.java
@@ -38,7 +38,7 @@ public class RitualEffectFullStomach extends RitualEffect
         double horizRange = 16;
         double vertRange = 16;
 
-        List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, x + 0.5, y + 0.5, z + 0.5, horizRange, vertRange);
+        List<EntityPlayer> playerList = SpellHelper.getPlayersInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, horizRange, vertRange);
 
         if (playerList == null)
         {
@@ -50,14 +50,14 @@ public class RitualEffectFullStomach extends RitualEffect
             SoulNetworkHandler.causeNauseaToPlayer(owner);
         } else
         {
-            TileEntity tile = world.getTileEntity(x, y + 1, z);
+            TileEntity tile = world.getTileEntity(pos.offsetUp());
             IInventory inventory = null;
             if (tile instanceof IInventory)
             {
                 inventory = (IInventory) tile;
             } else
             {
-                tile = world.getTileEntity(x, y - 1, z);
+                tile = world.getTileEntity(pos.offsetDown());
                 if (tile instanceof IInventory)
                 {
                     inventory = (IInventory) tile;
@@ -81,8 +81,8 @@ public class RitualEffectFullStomach extends RitualEffect
                         {
                             ItemFood foodItem = (ItemFood) stack.getItem();
 
-                            int regularHeal = foodItem.func_150905_g(stack);
-                            float saturatedHeal = foodItem.func_150906_h(stack) * regularHeal * 2.0f;
+                            int regularHeal = foodItem.getHealAmount(stack);
+                            float saturatedHeal = foodItem.getSaturationModifier(stack) * regularHeal * 2.0f;
 
                             if (saturatedHeal + satLevel <= 20)
                             {
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java
index 4b833b9c..6502585e 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectGrowth.java
@@ -1,19 +1,20 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.IGrowable;
+import net.minecraft.block.state.IBlockState;
+import net.minecraft.util.BlockPos;
+import net.minecraft.world.World;
+import net.minecraftforge.common.IPlantable;
 import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
 import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
 import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
 import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
 import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
 import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
-import net.minecraft.block.Block;
-import net.minecraft.util.BlockPos;
-import net.minecraft.world.World;
-import net.minecraftforge.common.IPlantable;
-import net.minecraft.block.IGrowable;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public class RitualEffectGrowth extends RitualEffect
 {
@@ -55,7 +56,8 @@ public class RitualEffectGrowth extends RitualEffect
                     {
                         if (this.canDrainReagent(ritualStone, ReagentRegistry.aquasalusReagent, aquasalusDrain, false))
                         {
-                            if (SpellHelper.hydrateSoil(world, x + i, y + 1, z + j))
+                        	BlockPos newPos = pos.add(i, 1, j);
+                            if (SpellHelper.hydrateSoil(world, newPos))
                             {
                                 this.canDrainReagent(ritualStone, ReagentRegistry.aquasalusReagent, aquasalusDrain, true);
                             }
@@ -71,13 +73,15 @@ public class RitualEffectGrowth extends RitualEffect
             {
                 for (int j = -range; j <= range; j++)
                 {
-                    Block block = world.getBlock(x + i, y + 2, z + j);
+                	BlockPos newPos = pos.add(i, 2, j);
+                	IBlockState state = world.getBlockState(newPos);
+                    Block block = state.getBlock();
 
                     if (block instanceof IPlantable || block instanceof IGrowable)
                     {
                         {
-                            SpellHelper.sendIndexedParticleToAllAround(world, x, y, z, 20, world.provider.getDimensionId(), 3, x, y, z);
-                            block.updateTick(world, x + i, y + 2, z + j, world.rand);
+                            SpellHelper.sendIndexedParticleToAllAround(world, pos, 20, world.provider.getDimensionId(), 3, pos);
+                            block.updateTick(world, newPos, state, world.rand);
                             flag++;
                         }
                     }
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java
index 790d2986..c0f7dcf6 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHarvest.java
@@ -1,21 +1,22 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
-import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
+import java.util.ArrayList;
+import java.util.List;
+
 import net.minecraft.block.Block;
+import net.minecraft.block.state.IBlockState;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.init.Blocks;
 import net.minecraft.potion.Potion;
 import net.minecraft.potion.PotionEffect;
 import net.minecraft.util.BlockPos;
 import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.List;
+import WayofTime.alchemicalWizardry.api.harvest.HarvestRegistry;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
 
 public class RitualEffectHarvest extends RitualEffect
 {
@@ -47,7 +48,8 @@ public class RitualEffectHarvest extends RitualEffect
                 return;
             }
 
-            Block block = world.getBlock(x, y - 1, z);
+            IBlockState state = world.getBlockState(pos.offsetDown());
+            Block block = state.getBlock();
             int flag = 0;
             int range = this.getRadiusForModifierBlock(block);
             int vertRange = 4;
@@ -58,7 +60,7 @@ public class RitualEffectHarvest extends RitualEffect
                 {
                     for (int k = -range; k <= range; k++)
                     {
-                        if (HarvestRegistry.harvestBlock(world, x + i, y + j, z + k) && flag < maxCount)
+                        if (HarvestRegistry.harvestBlock(world, pos.add(i, j, k)) && flag < maxCount)
                         {
                             flag++;
                         }
diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java
index b3c86d7b..f2eac94b 100644
--- a/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java
+++ b/src/main/java/WayofTime/alchemicalWizardry/common/rituals/RitualEffectHealing.java
@@ -1,20 +1,20 @@
 package WayofTime.alchemicalWizardry.common.rituals;
 
-import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
-import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
-import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
-import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
-import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
-import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
+import java.util.ArrayList;
+import java.util.List;
+
 import net.minecraft.entity.EntityLivingBase;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.potion.Potion;
 import net.minecraft.potion.PotionEffect;
 import net.minecraft.util.BlockPos;
 import net.minecraft.world.World;
-
-import java.util.ArrayList;
-import java.util.List;
+import WayofTime.alchemicalWizardry.api.alchemy.energy.ReagentRegistry;
+import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
+import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
+import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
+import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
+import WayofTime.alchemicalWizardry.common.spell.complex.effect.SpellHelper;
 
 public class RitualEffectHealing extends RitualEffect
 {
@@ -43,9 +43,8 @@ public class RitualEffectHealing extends RitualEffect
         int range = 15 * (hasPraesidium ? 3 : 1);
         int vertRange = 15 * (hasPraesidium ? 3 : 1);
 
-        List<EntityLivingBase> list = SpellHelper.getLivingEntitiesInRange(world, x + 0.5, y + 0.5, z + 0.5, range, vertRange);
+        List<EntityLivingBase> list = SpellHelper.getLivingEntitiesInRange(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, range, vertRange);
         int entityCount = 0;
-        boolean flag = false;
 
         for (EntityLivingBase livingEntity : list)
         {