diff --git a/src/main/java/com/leclowndu93150/carbort/Carbort.java b/src/main/java/com/leclowndu93150/carbort/Carbort.java
index 726a61a..b094c36 100644
--- a/src/main/java/com/leclowndu93150/carbort/Carbort.java
+++ b/src/main/java/com/leclowndu93150/carbort/Carbort.java
@@ -16,15 +16,15 @@ public class Carbort {
     public static final Logger LOGGER = LogUtils.getLogger();
 
     public Carbort(IEventBus modEventBus, ModContainer modContainer) {
-        new FoodRegistry();
-        CreativeTabRegistry.CREATIVE_MODE_TABS.register(modEventBus);
-        ItemRegistry.ITEMS.register(modEventBus);
-        BlockRegistry.BLOCKS.register(modEventBus);
-        BlockEntityRegistry.REGISTER.register(modEventBus);
-        EffectRegistry.EFFECTS.register(modEventBus);
-        EffectRegistry.POTIONS.register(modEventBus);
-        DataComponentRegistry.DATA_COMPONENTS.register(modEventBus);
-        MenuRegistry.MENUS.register(modEventBus);
+        new CBFoods();
+        CBTabs.CREATIVE_MODE_TABS.register(modEventBus);
+        CBItems.ITEMS.register(modEventBus);
+        CBBlocks.BLOCKS.register(modEventBus);
+        CBBlockEntities.REGISTER.register(modEventBus);
+        CBMobEffects.EFFECTS.register(modEventBus);
+        CBMobEffects.POTIONS.register(modEventBus);
+        CBDataComponents.DATA_COMPONENTS.register(modEventBus);
+        CBMenus.MENUS.register(modEventBus);
         modEventBus.addListener(this::commonSetup);
         modContainer.registerConfig(ModConfig.Type.COMMON, CarbortConfig.SPEC);
     }
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/holder/CakeFlavour.java b/src/main/java/com/leclowndu93150/carbort/api/CakeFlavour.java
similarity index 52%
rename from src/main/java/com/leclowndu93150/carbort/registries/holder/CakeFlavour.java
rename to src/main/java/com/leclowndu93150/carbort/api/CakeFlavour.java
index 7f4dcb1..94b1748 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/holder/CakeFlavour.java
+++ b/src/main/java/com/leclowndu93150/carbort/api/CakeFlavour.java
@@ -1,8 +1,8 @@
-package com.leclowndu93150.carbort.registries.holder;
+package com.leclowndu93150.carbort.api;
 
 import com.leclowndu93150.carbort.content.blocks.CakeBlock;
-import com.leclowndu93150.carbort.registries.BlockRegistry;
-import com.leclowndu93150.carbort.registries.ItemRegistry;
+import com.leclowndu93150.carbort.registries.CBBlocks;
+import com.leclowndu93150.carbort.registries.CBItems;
 import net.minecraft.world.food.FoodProperties;
 import net.minecraft.world.item.BlockItem;
 import net.minecraft.world.item.Item;
@@ -20,8 +20,8 @@ public class CakeFlavour {
 
     public CakeFlavour(String flavor) {
         Flavor = flavor;
-        BITE = ItemRegistry.ITEMS.register(Flavor + "_bite", () -> new Item(new Item.Properties().food(new FoodProperties.Builder().nutrition(6).saturationModifier(2f).build())));
-        CAKE_BLOCK = BlockRegistry.BLOCKS.register(Flavor + "_cake", () -> new CakeBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CAKE), BITE));
-        CAKE_ITEM = ItemRegistry.ITEMS.register(Flavor + "_cake", () -> new BlockItem(CAKE_BLOCK.get(), new Item.Properties()));
+        BITE = CBItems.ITEMS.register(Flavor + "_bite", () -> new Item(new Item.Properties().food(new FoodProperties.Builder().nutrition(6).saturationModifier(2f).build())));
+        CAKE_BLOCK = CBBlocks.BLOCKS.register(Flavor + "_cake", () -> new CakeBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CAKE), BITE));
+        CAKE_ITEM = CBItems.ITEMS.register(Flavor + "_cake", () -> new BlockItem(CAKE_BLOCK.get(), new Item.Properties()));
     }
 }
diff --git a/src/main/java/com/leclowndu93150/carbort/content/blockEntities/SmileyCloudBlockEntity.java b/src/main/java/com/leclowndu93150/carbort/content/blockEntities/SmileyCloudBlockEntity.java
index 248c1e2..0fac465 100644
--- a/src/main/java/com/leclowndu93150/carbort/content/blockEntities/SmileyCloudBlockEntity.java
+++ b/src/main/java/com/leclowndu93150/carbort/content/blockEntities/SmileyCloudBlockEntity.java
@@ -1,6 +1,6 @@
 package com.leclowndu93150.carbort.content.blockEntities;
 
-import com.leclowndu93150.carbort.registries.BlockEntityRegistry;
+import com.leclowndu93150.carbort.registries.CBBlockEntities;
 import net.minecraft.core.BlockPos;
 import net.minecraft.world.level.block.entity.BlockEntity;
 import net.minecraft.world.level.block.state.BlockState;
@@ -8,6 +8,6 @@
 public class SmileyCloudBlockEntity extends BlockEntity {
 
     public SmileyCloudBlockEntity(BlockPos pos, BlockState blockState) {
-        super(BlockEntityRegistry.SMILEY_CLOUD.get(), pos, blockState);
+        super(CBBlockEntities.SMILEY_CLOUD.get(), pos, blockState);
     }
 }
diff --git a/src/main/java/com/leclowndu93150/carbort/content/blocks/BeanCropBlock.java b/src/main/java/com/leclowndu93150/carbort/content/blocks/BeanCropBlock.java
index dadf02e..8ba6ada 100644
--- a/src/main/java/com/leclowndu93150/carbort/content/blocks/BeanCropBlock.java
+++ b/src/main/java/com/leclowndu93150/carbort/content/blocks/BeanCropBlock.java
@@ -1,6 +1,6 @@
 package com.leclowndu93150.carbort.content.blocks;
 
-import com.leclowndu93150.carbort.registries.ItemRegistry;
+import com.leclowndu93150.carbort.registries.CBItems;
 import net.minecraft.core.BlockPos;
 import net.minecraft.world.level.BlockGetter;
 import net.minecraft.world.level.ItemLike;
@@ -31,7 +31,7 @@ public int getMaxAge() {
 
     @Override
     protected @NotNull ItemLike getBaseSeedId() {
-        return ItemRegistry.BEAN;
+        return CBItems.BEAN;
     }
 
     @Override
diff --git a/src/main/java/com/leclowndu93150/carbort/content/effects/SoulTorment.java b/src/main/java/com/leclowndu93150/carbort/content/effects/SoulTorment.java
index d9b4602..4013cc8 100644
--- a/src/main/java/com/leclowndu93150/carbort/content/effects/SoulTorment.java
+++ b/src/main/java/com/leclowndu93150/carbort/content/effects/SoulTorment.java
@@ -1,6 +1,6 @@
 package com.leclowndu93150.carbort.content.effects;
 
-import com.leclowndu93150.carbort.registries.ItemRegistry;
+import com.leclowndu93150.carbort.registries.CBItems;
 import net.minecraft.world.damagesource.DamageSource;
 import net.minecraft.world.effect.MobEffect;
 import net.minecraft.world.effect.MobEffectCategory;
@@ -16,7 +16,7 @@ public SoulTorment(MobEffectCategory type, int col){
     public void onMobHurt(LivingEntity livingEntity, int amplifier, DamageSource damageSource, float amount) {
         super.onMobHurt(livingEntity, amplifier, damageSource, amount);
         if (livingEntity.getHealth() <= 0) {
-            livingEntity.spawnAtLocation(new ItemStack(ItemRegistry.TORMENTED_SOUL.asItem(), 1));
+            livingEntity.spawnAtLocation(new ItemStack(CBItems.TORMENTED_SOUL.asItem(), 1));
         }
     }
 }
diff --git a/src/main/java/com/leclowndu93150/carbort/content/energy/ItemStackEnergyStorage.java b/src/main/java/com/leclowndu93150/carbort/content/energy/ItemStackEnergyStorage.java
index 96f74c0..a4344da 100644
--- a/src/main/java/com/leclowndu93150/carbort/content/energy/ItemStackEnergyStorage.java
+++ b/src/main/java/com/leclowndu93150/carbort/content/energy/ItemStackEnergyStorage.java
@@ -1,6 +1,6 @@
 package com.leclowndu93150.carbort.content.energy;
 
-import com.leclowndu93150.carbort.registries.DataComponentRegistry;
+import com.leclowndu93150.carbort.registries.CBDataComponents;
 import net.minecraft.core.HolderLookup;
 import net.minecraft.nbt.IntTag;
 import net.minecraft.nbt.Tag;
@@ -14,12 +14,12 @@ public class ItemStackEnergyStorage extends EnergyStorage {
     public ItemStackEnergyStorage(int capacity, ItemStack itemStack) {
         super(capacity, capacity, capacity, 0);
         this.itemStack = itemStack;
-        this.energy = itemStack.getOrDefault(DataComponentRegistry.ENERGY_STORAGE, 0);
+        this.energy = itemStack.getOrDefault(CBDataComponents.ENERGY_STORAGE, 0);
     }
 
     public void setEnergy(int energy) {
         this.energy = energy;
-        itemStack.set(DataComponentRegistry.ENERGY_STORAGE, energy);
+        itemStack.set(CBDataComponents.ENERGY_STORAGE, energy);
     }
 
     @Override
@@ -30,7 +30,7 @@ public int receiveEnergy(int maxReceive, boolean simulate) {
         int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
         if (!simulate) {
             energy += energyReceived;
-            itemStack.set(DataComponentRegistry.ENERGY_STORAGE, energy);
+            itemStack.set(CBDataComponents.ENERGY_STORAGE, energy);
         }
         return energyReceived;
     }
@@ -43,14 +43,14 @@ public int extractEnergy(int maxExtract, boolean simulate) {
         int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
         if (!simulate) {
             energy -= energyExtracted;
-            itemStack.set(DataComponentRegistry.ENERGY_STORAGE, energy);
+            itemStack.set(CBDataComponents.ENERGY_STORAGE, energy);
         }
         return energyExtracted;
     }
 
     @Override
     public int getEnergyStored() {
-        return itemStack.getOrDefault(DataComponentRegistry.ENERGY_STORAGE, 0);
+        return itemStack.getOrDefault(CBDataComponents.ENERGY_STORAGE, 0);
     }
 
     @Override
diff --git a/src/main/java/com/leclowndu93150/carbort/content/items/UnstableIngotItem.java b/src/main/java/com/leclowndu93150/carbort/content/items/UnstableIngotItem.java
index e2d4a7f..f87d9df 100644
--- a/src/main/java/com/leclowndu93150/carbort/content/items/UnstableIngotItem.java
+++ b/src/main/java/com/leclowndu93150/carbort/content/items/UnstableIngotItem.java
@@ -1,7 +1,7 @@
 package com.leclowndu93150.carbort.content.items;
 
 import com.google.common.collect.Sets;
-import com.leclowndu93150.carbort.registries.DataComponentRegistry;
+import com.leclowndu93150.carbort.registries.CBDataComponents;
 import com.leclowndu93150.carbort.utils.RandomFunctions;
 import net.minecraft.ChatFormatting;
 import net.minecraft.network.chat.Component;
@@ -38,16 +38,16 @@ public boolean onDroppedByPlayer(ItemStack item, Player player) {
 
     @Override
     public void onCraftedBy(ItemStack stack, Level level, Player player) {
-        if(!stack.has(DataComponentRegistry.TIMER)){
-            stack.set(DataComponentRegistry.TIMER, 200);
+        if(!stack.has(CBDataComponents.TIMER)){
+            stack.set(CBDataComponents.TIMER, 200);
         }
     }
 
     @Override
     public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) {
-        if (stack.has(DataComponentRegistry.TIMER)){
-            stack.set(DataComponentRegistry.TIMER, stack.get(DataComponentRegistry.TIMER) - 1);
-            if (stack.get(DataComponentRegistry.TIMER) <= 0){
+        if (stack.has(CBDataComponents.TIMER)){
+            stack.set(CBDataComponents.TIMER, stack.get(CBDataComponents.TIMER) - 1);
+            if (stack.get(CBDataComponents.TIMER) <= 0){
                 stack.shrink(1);
             }
         }
@@ -56,9 +56,9 @@ public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotI
 
     @Override
     public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> tooltipComponents, TooltipFlag tooltipFlag) {
-        if (stack.has(DataComponentRegistry.TIMER)){
-            tooltipComponents.add(Component.literal("Explosion in "+RandomFunctions.convertTicksToSeconds(stack.get(DataComponentRegistry.TIMER))+" seconds").withStyle(ChatFormatting.GRAY));
-        } else if (!stack.has(DataComponentRegistry.TIMER)){
+        if (stack.has(CBDataComponents.TIMER)){
+            tooltipComponents.add(Component.literal("Explosion in "+RandomFunctions.convertTicksToSeconds(stack.get(CBDataComponents.TIMER))+" seconds").withStyle(ChatFormatting.GRAY));
+        } else if (!stack.has(CBDataComponents.TIMER)){
             tooltipComponents.add(Component.literal("ERROR: Divide by diamond").withStyle(ChatFormatting.GRAY));
             tooltipComponents.add(Component.literal("This ingot is highly unstable and will explode after 10 seconds.").withStyle(ChatFormatting.GRAY));
             tooltipComponents.add(Component.literal("Will explode if the crafting window is closed or the ingot is thrown on the ground.").withStyle(ChatFormatting.GRAY));
diff --git a/src/main/java/com/leclowndu93150/carbort/content/screen/ChunkAnalyzerMenu.java b/src/main/java/com/leclowndu93150/carbort/content/screen/ChunkAnalyzerMenu.java
index d14ece8..a0a1740 100644
--- a/src/main/java/com/leclowndu93150/carbort/content/screen/ChunkAnalyzerMenu.java
+++ b/src/main/java/com/leclowndu93150/carbort/content/screen/ChunkAnalyzerMenu.java
@@ -1,7 +1,7 @@
 package com.leclowndu93150.carbort.content.screen;
 
 import com.leclowndu93150.carbort.content.items.ChunkAnalyzerItem;
-import com.leclowndu93150.carbort.registries.MenuRegistry;
+import com.leclowndu93150.carbort.registries.CBMenus;
 import net.minecraft.network.RegistryFriendlyByteBuf;
 import net.minecraft.world.entity.player.Inventory;
 import net.minecraft.world.entity.player.Player;
@@ -11,7 +11,7 @@
 
 public class ChunkAnalyzerMenu extends AbstractContainerMenu {
     public ChunkAnalyzerMenu(Player player, int containerId) {
-        super(MenuRegistry.CHUNK_ANALYZER_MENU.get(), containerId);
+        super(CBMenus.CHUNK_ANALYZER_MENU.get(), containerId);
     }
 
     public ChunkAnalyzerMenu(int id, Inventory inventory, RegistryFriendlyByteBuf data) {
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/BlockStateProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/BlockStateProvider.java
deleted file mode 100644
index 8d702c0..0000000
--- a/src/main/java/com/leclowndu93150/carbort/datagen/BlockStateProvider.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.leclowndu93150.carbort.datagen;
-
-public class BlockStateProvider {
-}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/CBBlockStateProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/CBBlockStateProvider.java
new file mode 100644
index 0000000..99a264f
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/CBBlockStateProvider.java
@@ -0,0 +1,16 @@
+package com.leclowndu93150.carbort.datagen;
+
+import net.minecraft.data.PackOutput;
+import net.neoforged.neoforge.client.model.generators.BlockStateProvider;
+import net.neoforged.neoforge.common.data.ExistingFileHelper;
+
+public class CBBlockStateProvider extends BlockStateProvider {
+    public CBBlockStateProvider(PackOutput output, String modid, ExistingFileHelper exFileHelper) {
+        super(output, modid, exFileHelper);
+    }
+
+    @Override
+    protected void registerStatesAndModels() {
+
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/CBBlockTagProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/CBBlockTagProvider.java
new file mode 100644
index 0000000..a252fb2
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/CBBlockTagProvider.java
@@ -0,0 +1,21 @@
+package com.leclowndu93150.carbort.datagen;
+
+import com.leclowndu93150.carbort.Carbort;
+import net.minecraft.core.HolderLookup;
+import net.minecraft.data.PackOutput;
+import net.neoforged.neoforge.common.data.BlockTagsProvider;
+import net.neoforged.neoforge.common.data.ExistingFileHelper;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.concurrent.CompletableFuture;
+
+public class CBBlockTagProvider extends BlockTagsProvider {
+    public CBBlockTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, @Nullable ExistingFileHelper existingFileHelper) {
+        super(output, lookupProvider, Carbort.MODID, existingFileHelper);
+    }
+
+    @Override
+    protected void addTags(HolderLookup.Provider provider) {
+
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/CBItemModelProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/CBItemModelProvider.java
new file mode 100644
index 0000000..f7621b9
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/CBItemModelProvider.java
@@ -0,0 +1,16 @@
+package com.leclowndu93150.carbort.datagen;
+
+import net.minecraft.data.PackOutput;
+import net.neoforged.neoforge.client.model.generators.ItemModelProvider;
+import net.neoforged.neoforge.common.data.ExistingFileHelper;
+
+public class CBItemModelProvider extends ItemModelProvider {
+    public CBItemModelProvider(PackOutput output, String modid, ExistingFileHelper existingFileHelper) {
+        super(output, modid, existingFileHelper);
+    }
+
+    @Override
+    protected void registerModels() {
+
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/CBItemTagProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/CBItemTagProvider.java
new file mode 100644
index 0000000..6429a65
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/CBItemTagProvider.java
@@ -0,0 +1,19 @@
+package com.leclowndu93150.carbort.datagen;
+
+import net.minecraft.core.HolderLookup;
+import net.minecraft.data.PackOutput;
+import net.minecraft.data.tags.ItemTagsProvider;
+import net.minecraft.world.level.block.Block;
+
+import java.util.concurrent.CompletableFuture;
+
+public class CBItemTagProvider extends ItemTagsProvider {
+    public CBItemTagProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> lookupProvider, CompletableFuture<TagLookup<Block>> blockTags) {
+        super(output, lookupProvider, blockTags);
+    }
+
+    @Override
+    protected void addTags(HolderLookup.Provider provider) {
+
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/CBLangProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/CBLangProvider.java
new file mode 100644
index 0000000..2646c00
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/CBLangProvider.java
@@ -0,0 +1,16 @@
+package com.leclowndu93150.carbort.datagen;
+
+import com.leclowndu93150.carbort.Carbort;
+import net.minecraft.data.PackOutput;
+import net.neoforged.neoforge.common.data.LanguageProvider;
+
+public class CBLangProvider extends LanguageProvider {
+    public CBLangProvider(PackOutput output) {
+        super(output, Carbort.MODID, "en_us");
+    }
+
+    @Override
+    protected void addTranslations() {
+
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/CBRecipesProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/CBRecipesProvider.java
new file mode 100644
index 0000000..30897ac
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/CBRecipesProvider.java
@@ -0,0 +1,19 @@
+package com.leclowndu93150.carbort.datagen;
+
+import net.minecraft.core.HolderLookup;
+import net.minecraft.data.PackOutput;
+import net.minecraft.data.recipes.RecipeOutput;
+import net.minecraft.data.recipes.RecipeProvider;
+
+import java.util.concurrent.CompletableFuture;
+
+public class CBRecipesProvider extends RecipeProvider {
+    public CBRecipesProvider(PackOutput output, CompletableFuture<HolderLookup.Provider> registries) {
+        super(output, registries);
+    }
+
+    @Override
+    protected void buildRecipes(RecipeOutput p_recipeOutput, HolderLookup.Provider holderLookup) {
+
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/DataGatherer.java b/src/main/java/com/leclowndu93150/carbort/datagen/DataGatherer.java
new file mode 100644
index 0000000..5e97dd4
--- /dev/null
+++ b/src/main/java/com/leclowndu93150/carbort/datagen/DataGatherer.java
@@ -0,0 +1,24 @@
+package com.leclowndu93150.carbort.datagen;
+
+import com.leclowndu93150.carbort.Carbort;
+import net.minecraft.core.HolderLookup;
+import net.minecraft.data.DataGenerator;
+import net.neoforged.bus.api.SubscribeEvent;
+import net.neoforged.fml.common.EventBusSubscriber;
+import net.neoforged.neoforge.common.data.ExistingFileHelper;
+import net.neoforged.neoforge.data.event.GatherDataEvent;
+
+import java.util.concurrent.CompletableFuture;
+
+@EventBusSubscriber(modid = Carbort.MODID)
+public final class DataGatherer {
+    @SubscribeEvent
+    public static void gatherData(GatherDataEvent event) {
+        DataGenerator generator = event.getGenerator();
+        ExistingFileHelper fileHelper = event.getExistingFileHelper();
+        CompletableFuture<HolderLookup.Provider> lookupProvider = event.getLookupProvider();
+
+        boolean assets = event.includeClient();
+        boolean data = event.includeServer();
+    }
+}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/DataGenerator.java b/src/main/java/com/leclowndu93150/carbort/datagen/DataGenerator.java
deleted file mode 100644
index 71bd04b..0000000
--- a/src/main/java/com/leclowndu93150/carbort/datagen/DataGenerator.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.leclowndu93150.carbort.datagen;
-
-public class DataGenerator {
-}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/LangProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/LangProvider.java
deleted file mode 100644
index c86b1ea..0000000
--- a/src/main/java/com/leclowndu93150/carbort/datagen/LangProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.leclowndu93150.carbort.datagen;
-
-import com.leclowndu93150.carbort.Carbort;
-import net.neoforged.bus.api.SubscribeEvent;
-import net.neoforged.fml.common.EventBusSubscriber;
-import net.neoforged.neoforge.common.data.LanguageProvider;
-import net.neoforged.neoforge.data.event.GatherDataEvent;
-
-@EventBusSubscriber(bus = EventBusSubscriber.Bus.MOD)
-public class LangProvider {
-    @SubscribeEvent
-    public static void gatherData(GatherDataEvent event) {
-        net.minecraft.data.DataGenerator generator = event.getGenerator();
-        event.getGenerator().addProvider(event.includeServer(), new LanguageProvider(generator.getPackOutput(), Carbort.MODID, "en_us") {
-            @Override
-            protected void addTranslations() {
-                add("itemGroup.carbort", "Carbort");
-                add("item.carbort.party_pickaxe", "Party Pickaxe");
-                add("item.carbort.healing_axe", "Healing Axe");
-                add("item.carbort.chunk_analyzer", "Chunk Analyzer");
-                //Im too lazy deal with it
-            }
-        });
-    }
-}
\ No newline at end of file
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/ModelProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/ModelProvider.java
deleted file mode 100644
index 7629d76..0000000
--- a/src/main/java/com/leclowndu93150/carbort/datagen/ModelProvider.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.leclowndu93150.carbort.datagen;
-
-public class ModelProvider {
-}
diff --git a/src/main/java/com/leclowndu93150/carbort/datagen/RecipeProvider.java b/src/main/java/com/leclowndu93150/carbort/datagen/RecipeProvider.java
deleted file mode 100644
index 456a549..0000000
--- a/src/main/java/com/leclowndu93150/carbort/datagen/RecipeProvider.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package com.leclowndu93150.carbort.datagen;
-
-public class RecipeProvider {
-}
diff --git a/src/main/java/com/leclowndu93150/carbort/events/CarbortEvents.java b/src/main/java/com/leclowndu93150/carbort/events/CarbortEvents.java
index 39351df..716a178 100644
--- a/src/main/java/com/leclowndu93150/carbort/events/CarbortEvents.java
+++ b/src/main/java/com/leclowndu93150/carbort/events/CarbortEvents.java
@@ -8,7 +8,7 @@
 import com.leclowndu93150.carbort.networking.ChunkAnalyzerDataPayload;
 import com.leclowndu93150.carbort.networking.ChunkAnalyzerTogglePayload;
 import com.leclowndu93150.carbort.networking.PayloadActions;
-import com.leclowndu93150.carbort.registries.MenuRegistry;
+import com.leclowndu93150.carbort.registries.CBMenus;
 import net.minecraft.core.registries.BuiltInRegistries;
 import net.minecraft.world.entity.LivingEntity;
 import net.minecraft.world.entity.monster.Monster;
@@ -65,7 +65,7 @@ public static void registerPayloads(RegisterPayloadHandlersEvent event) {
 
         @SubscribeEvent
         public static void onClientSetup(RegisterMenuScreensEvent event) {
-            event.register(MenuRegistry.CHUNK_ANALYZER_MENU.get(), ChunkAnalyzerScreen::new);
+            event.register(CBMenus.CHUNK_ANALYZER_MENU.get(), ChunkAnalyzerScreen::new);
         }
 
 
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/BlockEntityRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBBlockEntities.java
similarity index 82%
rename from src/main/java/com/leclowndu93150/carbort/registries/BlockEntityRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBBlockEntities.java
index f1b231b..a79c477 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/BlockEntityRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBBlockEntities.java
@@ -8,8 +8,8 @@
 
 import java.util.function.Supplier;
 
-public class BlockEntityRegistry {
+public final class CBBlockEntities {
     public static final DeferredRegister<BlockEntityType<?>> REGISTER = DeferredRegister.create(BuiltInRegistries.BLOCK_ENTITY_TYPE, Carbort.MODID);
 
-    public static final Supplier<BlockEntityType<SmileyCloudBlockEntity>> SMILEY_CLOUD = REGISTER.register("smiley_cloud", () -> BlockEntityType.Builder.of(SmileyCloudBlockEntity::new, BlockRegistry.SMILEY_CLOUD.get()).build(null));
+    public static final Supplier<BlockEntityType<SmileyCloudBlockEntity>> SMILEY_CLOUD = REGISTER.register("smiley_cloud", () -> BlockEntityType.Builder.of(SmileyCloudBlockEntity::new, CBBlocks.SMILEY_CLOUD.get()).build(null));
 }
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/BlockRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBBlocks.java
similarity index 97%
rename from src/main/java/com/leclowndu93150/carbort/registries/BlockRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBBlocks.java
index 74294e4..d4c4167 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/BlockRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBBlocks.java
@@ -9,7 +9,7 @@
 import net.neoforged.neoforge.registries.DeferredBlock;
 import net.neoforged.neoforge.registries.DeferredRegister;
 
-public class BlockRegistry {
+public final class CBBlocks {
     public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Carbort.MODID);
 
     public static final DeferredBlock<Block> SMILEY_CLOUD = BLOCKS.register(
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/DataComponentRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBDataComponents.java
similarity index 96%
rename from src/main/java/com/leclowndu93150/carbort/registries/DataComponentRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBDataComponents.java
index f432d2d..427b265 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/DataComponentRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBDataComponents.java
@@ -8,7 +8,7 @@
 
 import java.util.function.Supplier;
 
-public class DataComponentRegistry {
+public final class CBDataComponents {
     public static final DeferredRegister.DataComponents DATA_COMPONENTS = DeferredRegister.createDataComponents(Carbort.MODID);
 
     public static final Supplier<DataComponentType<Integer>> ENERGY_STORAGE = DATA_COMPONENTS.register("energy",
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/FoodRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBFoods.java
similarity index 82%
rename from src/main/java/com/leclowndu93150/carbort/registries/FoodRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBFoods.java
index a57abee..4c1b4f2 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/FoodRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBFoods.java
@@ -1,9 +1,9 @@
 package com.leclowndu93150.carbort.registries;
 
-import com.leclowndu93150.carbort.registries.holder.CakeFlavour;
+import com.leclowndu93150.carbort.api.CakeFlavour;
 
-public class FoodRegistry {
-    public FoodRegistry(){
+public final class CBFoods {
+    public CBFoods(){
 
     }
     public CakeFlavour CAKE_FLAVOUR_CHOCOLATE = new CakeFlavour("chocolate");
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/ItemRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBItems.java
similarity index 90%
rename from src/main/java/com/leclowndu93150/carbort/registries/ItemRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBItems.java
index c80bd5b..0de0c3b 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/ItemRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBItems.java
@@ -11,7 +11,7 @@
 import net.neoforged.neoforge.registries.DeferredItem;
 import net.neoforged.neoforge.registries.DeferredRegister;
 
-public class ItemRegistry {
+public final class CBItems {
 
     public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(Carbort.MODID);
 
@@ -21,9 +21,9 @@ public class ItemRegistry {
 
     public static final DeferredItem<Item> HEALING_AXE = ITEMS.register("healing_axe", () -> new HealingAxeItem(new Item.Properties()));
 
-    public static final DeferredItem<BlockItem> SMILEY_CLOUD_ITEM = ITEMS.registerSimpleBlockItem("smiley_cloud", BlockRegistry.SMILEY_CLOUD);
+    public static final DeferredItem<BlockItem> SMILEY_CLOUD_ITEM = ITEMS.registerSimpleBlockItem("smiley_cloud", CBBlocks.SMILEY_CLOUD);
     public static final DeferredItem<Item> FIRE_IN_A_BOTTLE = ITEMS.register("fire_in_a_bottle", () -> new Item(new Item.Properties()));
-    public static final DeferredItem<Item> BEAN = ITEMS.register("bean", () -> new BeanItem(BlockRegistry.BEANS.get(), new Item.Properties()
+    public static final DeferredItem<Item> BEAN = ITEMS.register("bean", () -> new BeanItem(CBBlocks.BEANS.get(), new Item.Properties()
             .food(new FoodProperties.Builder()
                     .alwaysEdible()
                     .nutrition(6)
@@ -41,7 +41,7 @@ public class ItemRegistry {
             () -> new ChunkAnalyzerItem(new Item.Properties()
                     .stacksTo(1)
                     .rarity(Rarity.RARE)
-                    .component(DataComponentRegistry.ENERGY_STORAGE, 0)));
+                    .component(CBDataComponents.ENERGY_STORAGE, 0)));
 
     public static final DeferredItem<Item> UNSTABLE_INGOT = ITEMS.register("unstable_ingot", () -> new UnstableIngotItem(new Item.Properties()));
 
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/KeyBindRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBKeybinds.java
similarity index 60%
rename from src/main/java/com/leclowndu93150/carbort/registries/KeyBindRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBKeybinds.java
index d82ba49..667c573 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/KeyBindRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBKeybinds.java
@@ -1,4 +1,4 @@
 package com.leclowndu93150.carbort.registries;
 
-public class KeyBindRegistry {
+public final class CBKeybinds {
 }
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/MenuRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBMenus.java
similarity index 97%
rename from src/main/java/com/leclowndu93150/carbort/registries/MenuRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBMenus.java
index 69298b4..853c244 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/MenuRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBMenus.java
@@ -11,7 +11,7 @@
 
 import java.util.function.Supplier;
 
-public class MenuRegistry {
+public final class CBMenus {
     public static final DeferredRegister<MenuType<?>> MENUS =
             DeferredRegister.create(Registries.MENU, Carbort.MODID);
     public static final Supplier<MenuType<ChunkAnalyzerMenu>> CHUNK_ANALYZER_MENU =
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/EffectRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBMobEffects.java
similarity index 97%
rename from src/main/java/com/leclowndu93150/carbort/registries/EffectRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBMobEffects.java
index 3091a57..cacd80c 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/EffectRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBMobEffects.java
@@ -11,7 +11,7 @@
 import net.neoforged.neoforge.registries.DeferredHolder;
 import net.neoforged.neoforge.registries.DeferredRegister;
 
-public class EffectRegistry {
+public final class CBMobEffects {
     public static final DeferredRegister<MobEffect> EFFECTS = DeferredRegister.create(Registries.MOB_EFFECT, Carbort.MODID);
     public static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(Registries.POTION, Carbort.MODID);
     public static final DeferredHolder<MobEffect, MobEffect> SOUL_TORMENT = EFFECTS.register("soul_torment", ()->
diff --git a/src/main/java/com/leclowndu93150/carbort/registries/CreativeTabRegistry.java b/src/main/java/com/leclowndu93150/carbort/registries/CBTabs.java
similarity index 94%
rename from src/main/java/com/leclowndu93150/carbort/registries/CreativeTabRegistry.java
rename to src/main/java/com/leclowndu93150/carbort/registries/CBTabs.java
index 4d4fcab..78d8eeb 100644
--- a/src/main/java/com/leclowndu93150/carbort/registries/CreativeTabRegistry.java
+++ b/src/main/java/com/leclowndu93150/carbort/registries/CBTabs.java
@@ -13,9 +13,9 @@
 import net.neoforged.neoforge.registries.DeferredHolder;
 import net.neoforged.neoforge.registries.DeferredRegister;
 
-import static com.leclowndu93150.carbort.registries.ItemRegistry.*;
+import static com.leclowndu93150.carbort.registries.CBItems.*;
 
-public class CreativeTabRegistry {
+public final class CBTabs {
     public static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, Carbort.MODID);
 
     public static final DeferredHolder<CreativeModeTab, CreativeModeTab> CARBORT_TAB = CREATIVE_MODE_TABS.register("carbort_tab", () -> CreativeModeTab.builder()