diff --git a/TODO.md b/TODO.md
index d6c329e..c51f710 100644
--- a/TODO.md
+++ b/TODO.md
@@ -1,13 +1,16 @@
 # Gating TODO:
-[ ] Cart assembler - mid-game build grist
-[ ] functional storage - swap out redstone + quartz for grist in controller
+[x] Cart assembler - mid-game build grist
+[x] functional storage - swap out redstone + quartz for grist in controller
 [ ] create new age power generator, nuclear reactor
+[x] gate wireless redstone behind intelligent grist (create:transmitter)
 
 # create todo:
-[ ] crush redstone, lapis, copper, ender, prismarine, quartz, tear powder
+[x] crush redstone, lapis, copper, ender, prismarine, quartz, tear powder
 [x] fix ore doubling and xp overload
-[ ] create energetic grist with the tesla coil?
-[ ] melt down xp nuggets and blocks into liquid xp
+[ ] create energetic grist with the energizer?
+[x] melt down xp nuggets and blocks into liquid xp
+[x] precision mechanism?? where precision mechanism??
+[ ] create energized metals with energizing rod
 
 # balance TODO:
 [ ] slower health scaling
@@ -19,4 +22,13 @@
 [ ] build a kitchen cooker in create
 [ ] build an automatic farmer in create
 [ ] wormhole artifact
-[ ] redium tool
\ No newline at end of file
+[ ] redium tool
+
+# ars TODO:
+[x] re-balance enchanting apparatus
+[x] balance pass on spell runes w/ grist
+
+# mods todo:
+[x] remove coins
+[x] remove refined storage
+[x] remove create additions
\ No newline at end of file
diff --git a/compose.yaml b/compose.yaml
index 491a7da..a0e2225 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -5,7 +5,7 @@ services:
       - server-data:/data
     environment:
       TYPE: "FORGE"
-      PACKWIZ_URL: "http://172.17.0.1:8080/pack.toml"
+      PACKWIZ_URL: "http://127.0.0.1:8080/pack.toml"
       EULA: "TRUE"
       VERSION: "1.20.1"
       MEMORY: "8G"
diff --git a/index.toml b/index.toml
index 7f69335..433328d 100644
--- a/index.toml
+++ b/index.toml
@@ -2,7 +2,7 @@ hash-format = "sha256"
 
 [[files]]
 file = "compose.yaml"
-hash = "e4d93964cb1ab3cc6f49a55307851e731ef07d56b076b746184b9f9644b6e814"
+hash = "6f43e256eb5d2fddc551f6cfbbf1d306d7b7437bd862dbdd203d2a501d3cbb03"
 
 [[files]]
 file = "config/alexcaves-client.toml"
@@ -96,10 +96,6 @@ hash = "90840fec7d050f740d743729c0c8f5ea3b046f98b1b0c0f1d13f2eca09fcc805"
 file = "config/ftbquests/quests/reward_tables/major_xp.snbt"
 hash = "2ccac856c053b02d541b80f86937724210d56c4f7f6552ee2b9a96770bf1ba09"
 
-[[files]]
-file = "config/ftbquests/quests/reward_tables/minor_coin_reward.snbt"
-hash = "b53d8291ce4353e2d63cc83d6a5edbc4aac1ac2cfc98aaa4a3a937b7669a436e"
-
 [[files]]
 file = "config/ftbquests/quests/reward_tables/minor_grist_essence.snbt"
 hash = "f49e41e2bd5c0dc5689410e6657426c61a8068010696395ff481823a8314d5e0"
@@ -599,7 +595,7 @@ hash = "f922fd6e0bba21f3bb42929d83b4c977178a8421a176adc8e738291c877a27d7"
 
 [[files]]
 file = "kubejs/server_scripts/grist/primordeal.js"
-hash = "5f2b0d94e58e00bc22e486d6c0694c02620aadce02664d2b7137bda712a7169f"
+hash = "b2558215fb1aca7efcf3a1c09d41e847f78e8fe61c3aa6652b17bd870edd8b87"
 
 [[files]]
 file = "kubejs/server_scripts/grist/tags.js"
@@ -619,7 +615,7 @@ hash = "4dacad5d914c02db31c80e40d7edab7fee89a817444e2f75858209278f9be446"
 
 [[files]]
 file = "kubejs/server_scripts/mods/arsnoveau.js"
-hash = "8c253eb8cd201d6b874851912d26d7a0a429c5a493d51607d7ed8ddfeb915fc1"
+hash = "f25c7a0fd694135d3de66db51519c14377f96a836dbd59081a9f22860fb1878d"
 
 [[files]]
 file = "kubejs/server_scripts/mods/bakery.js"
@@ -647,7 +643,7 @@ hash = "4717847a6d54f56ed6919a1e2c3591fc73780973708e818a563753132bc7c15e"
 
 [[files]]
 file = "kubejs/server_scripts/mods/create.js"
-hash = "6bf06fb592e1cf77e9fe3a45df5aef08419be355d3ff245426ac18f16c7fa00c"
+hash = "8cce1a2b55882f19a3c3bf77f6059c8b940d00a31dc3c1f91b8b11a54d2e7a5a"
 
 [[files]]
 file = "kubejs/server_scripts/mods/croptopia.js"
@@ -661,10 +657,6 @@ hash = "47114c83f6423c61796d2be393645d0cacb90f6d7251b9bc52b542a5d3b0ddd5"
 file = "kubejs/server_scripts/mods/doggytalents.js"
 hash = "ba7c9986d8c450f63a34d61d474203ce45ed82f1a5b3af366aa5498c32125fe3"
 
-[[files]]
-file = "kubejs/server_scripts/mods/dotcoinmod.js"
-hash = "6b48a23fcba274f15ce394e0754c10dfa80deefb5df25d9f2f97940d83758e5e"
-
 [[files]]
 file = "kubejs/server_scripts/mods/easy_villagers.js"
 hash = "4ae08d926ae9dfd24d59ae6bea4659c400ca89f011f2acc85b7f839956236f35"
@@ -683,7 +675,7 @@ hash = "fd8f6de5bb56d08a181e625e450b91c3ea687b33ebf378daf0381e7873515f85"
 
 [[files]]
 file = "kubejs/server_scripts/mods/functionalstorage.js"
-hash = "f61c956b638c42272304f784a1ce98274d16c7d649b4661c783169945b38118f"
+hash = "3e52a8efbbb035f76a12089f8d86a34dbc51100e08a32e293022f2c60411d282"
 
 [[files]]
 file = "kubejs/server_scripts/mods/herbalbrews.js"
@@ -723,16 +715,12 @@ hash = "93b1aee5ea41c226a2dd5e453824518ab0eeb6d15f649f0a74e5b0e4be9a2e17"
 
 [[files]]
 file = "kubejs/server_scripts/mods/powder_power.js"
-hash = "d51abcbc9c6bd5efdc69aa59c1d5e9a73585db28176db369f70aa05e65f96eae"
+hash = "06d82c15a2d41e8408f550c0e24ef41d1bc730b16874e9b3aff5cc5cc143ab00"
 
 [[files]]
 file = "kubejs/server_scripts/mods/prettypipes.js"
 hash = "b8e97ae2d545b542bd983935eb914709315630d63f921a144f9242943ecfe672"
 
-[[files]]
-file = "kubejs/server_scripts/mods/refinedstorage.js"
-hash = "36abb6535dd4241dd9db126fd1aebc54550e639613b29e72b1f7d6986164283b"
-
 [[files]]
 file = "kubejs/server_scripts/mods/sophisticated.js"
 hash = "c193c190e3546c95f4d29a83dfb0faca347b6712889733b418cc3581e3881402"
@@ -1092,11 +1080,6 @@ file = "mods/create.pw.toml"
 hash = "119d501c87aef8afa8cf89ed6f17499518c21240d7781f4331e3007e57957a79"
 metafile = true
 
-[[files]]
-file = "mods/createaddition.pw.toml"
-hash = "efb00d657d22a7e560916ae2b7a2836f48586527a5ff40338af7e928472ef9da"
-metafile = true
-
 [[files]]
 file = "mods/cristel-lib.pw.toml"
 hash = "6a62d8663df5fe33f18c8a0d3784a3aab183b252c620c45fc98e677a71b06cde"
@@ -1172,11 +1155,6 @@ file = "mods/doggy-talents-next.pw.toml"
 hash = "feb48651aef32ab4e9849142c8c3fbf6cb9a49562f14f6db54def6a50bb64d87"
 metafile = true
 
-[[files]]
-file = "mods/dotcoin-mod.pw.toml"
-hash = "83eff3ee9ae60de4e4cc5376deb22b80e83bd8aa7e4d26f79e8952864717952c"
-metafile = true
-
 [[files]]
 file = "mods/dungeon-now-loading.pw.toml"
 hash = "f6c80081f62cd39ef66ba98804bd387fa94c55f0c2bb4b1779fca9a7c1cd5618"
@@ -1509,7 +1487,7 @@ metafile = true
 
 [[files]]
 file = "mods/kubejs-create.pw.toml"
-hash = "7e9ef26310359f482e595815664b3d08381b30c6517c32a58078b0999e1d953a"
+hash = "e9ea701c9fc9bb54d1bd3b6998403a229f896449c0d15b5df23dc46e20ac5092"
 metafile = true
 
 [[files]]
@@ -1524,7 +1502,7 @@ metafile = true
 
 [[files]]
 file = "mods/kubejs.pw.toml"
-hash = "873d23ad2ce05e3e92a05e011f3f9a375a745a4ca6ed4c9fffb0518fc8255bf7"
+hash = "b6ed220c9069f60704dbfe19fd55c976ca56ada35bcb6918c4ad226cd842b99c"
 metafile = true
 
 [[files]]
@@ -1777,26 +1755,6 @@ file = "mods/rechiseled.pw.toml"
 hash = "3e8c59c1817babb68d49af1bd816d6d00ffbaa8343968ad324996a0d5deb9c69"
 metafile = true
 
-[[files]]
-file = "mods/refined-cooking.pw.toml"
-hash = "41f41372b6c4b4866b5f12856dea4d11554fb32b95cf2aa140ed8985f4e1eda1"
-metafile = true
-
-[[files]]
-file = "mods/refined-polymorphism.pw.toml"
-hash = "68a55e82a93a7c080c5799e5abcfebcd65cca78443a7de64f5083f109720734d"
-metafile = true
-
-[[files]]
-file = "mods/refined-storage-addons.pw.toml"
-hash = "70b949dab65474c3687c98063f66282c7a580e0bf82f33615fac247fdc29019b"
-metafile = true
-
-[[files]]
-file = "mods/refined-storage.pw.toml"
-hash = "4f8fa2d8bba834bac3240024294ff9f2881fe20e11d775a93497dec5d25be571"
-metafile = true
-
 [[files]]
 file = "mods/repurposed-structures.pw.toml"
 hash = "1947cc239ea0752b836011ef95182e588e45b38ab793c9c24c6f468f85f54052"
diff --git a/kubejs/server_scripts/grist/primordeal.js b/kubejs/server_scripts/grist/primordeal.js
index ffdd245..b4eeec5 100755
--- a/kubejs/server_scripts/grist/primordeal.js
+++ b/kubejs/server_scripts/grist/primordeal.js
@@ -45,6 +45,7 @@ ServerEvents.recipes(event => {
         let blockID = grist.block().id();
         event.recipes.thermal.crucible(Fluid.of(fluidID, 250), id);
         event.recipes.thermal.chiller(id, Fluid.of(fluidID, 250));
+        event.recipes.createMixing(Fluid.of(fluidID, 250), id).heated();
 
         // convert between block and normal item
         event.shapeless(blockID, [`9x ${id}`]);
diff --git a/kubejs/server_scripts/mods/arsnoveau.js b/kubejs/server_scripts/mods/arsnoveau.js
index df18982..3c46cd4 100755
--- a/kubejs/server_scripts/mods/arsnoveau.js
+++ b/kubejs/server_scripts/mods/arsnoveau.js
@@ -4,6 +4,17 @@ ServerEvents.recipes(event => {
         'minecraft:diamond',
         'kubejs:grist_intelligent_basic_block'
     );
+    event.replaceInput(
+        {id: 'ars_nouveau:enchanting_apparatus'},
+        'minecraft:gold_nugget',
+        '#kubejs:grist/primordeal/basic'
+    );
+
+    event.replaceInput(
+        {id: 'ars_nouveau:enchanting_apparatus'},
+        'minecraft:gold_ingot',
+        '#kubejs:grist/intelligent/basic'
+    );
 
     event.shaped('ars_nouveau:imbuement_chamber', [
         'ABA',
@@ -27,6 +38,57 @@ ServerEvents.recipes(event => {
         '#kubejs:grist/energetic/basic'
     );
 
+    event.replaceInput(
+        {output: 'ars_nouveau:arcane_core'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/intelligent/basic'
+    );
+
+    // Gating elements behind grist
+    event.replaceInput(
+        {output: 'ars_nouveau:air_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/build/basic'
+    );
+    event.replaceInput(
+        {output: 'ars_nouveau:earth_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/build/basic'
+    );
+
+    event.replaceInput(
+        {output: 'ars_nouveau:manipulation_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/intelligent/basic'
+    );
+
+    event.replaceInput(
+        {output: 'ars_nouveau:water_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/energetic/basic'
+    );
+    event.replaceInput(
+        {output: 'ars_nouveau:fire_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/energetic/basic'
+    );
+
+    event.replaceInput(
+        {output: 'ars_nouveau:abjuration_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/agricultural/basic'
+    );
+    event.replaceInput(
+        {output: 'ars_nouveau:conjuration_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/agricultural/basic'
+    );
+    event.replaceInput(
+        {output: 'ars_elemental:anima_essence'},
+        'ars_nouveau:source_gem',
+        '#kubejs:grist/agricultural/improved'
+    );
+
     event.shaped('ars_nouveau:novice_spell_book', [
         ' A ',
         'ABA',
diff --git a/kubejs/server_scripts/mods/create.js b/kubejs/server_scripts/mods/create.js
index 3332455..722e9e1 100644
--- a/kubejs/server_scripts/mods/create.js
+++ b/kubejs/server_scripts/mods/create.js
@@ -17,6 +17,18 @@ ServerEvents.recipes(event => {
         '#minecraft:planks',
     ]);
 
+    // Cart assembler is gated behind mid-game grist
+    event.replaceInput({output: 'create:cart_assembler'},
+        '#forge:dusts/redstone',
+        '#kubejs:grist/build/improved'
+    );
+
+    // Gate wireless stuff behind intelligent grist
+    event.replaceInput({output: 'create:transmitter'},
+        '#forge:dusts/redstone',
+        '#kubejs:grist/intelligent/basic'
+    );
+
     // Allow certus quartz to be used for rose quartz
     event.replaceInput({output: 'create:rose_quartz'},
         'minecraft:quartz',
@@ -47,4 +59,18 @@ ServerEvents.recipes(event => {
         'B': 'thermal:tin_gear',
         'C': 'create:andesite_alloy',
     });
+
+    // Melt down XP nuggets and blocks into raw XP
+    // 1 nugget == 60mb cognitium
+    event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60), 'create:experience_nugget').heated();
+    event.recipes.createMixing(Fluid.of('experienceobelisk:cognitium', 60 * 9), 'create:experience_block').heated();
+
+    // Precision mechanisms should require intelligent grist
+    event.recipes.createSequencedAssembly([
+        Item.of('create:precision_mechanism'),
+    ], '#forge:ingots/brass', [
+        event.recipes.createDeploying('create:incomplete_precision_mechanism', ['create:incomplete_precision_mechanism', '#kubejs:grist/intelligent/basic']),
+        event.recipes.createDeploying('create:incomplete_precision_mechanism', ['create:incomplete_precision_mechanism', 'create:cogwheel']),
+        event.recipes.createDeploying('create:incomplete_precision_mechanism', ['create:incomplete_precision_mechanism', '#forge:gears/copper'])
+    ]).transitionalItem('create:incomplete_precision_mechanism').loops(3);
 });
\ No newline at end of file
diff --git a/kubejs/server_scripts/mods/functionalstorage.js b/kubejs/server_scripts/mods/functionalstorage.js
index b318b65..ad66e4d 100644
--- a/kubejs/server_scripts/mods/functionalstorage.js
+++ b/kubejs/server_scripts/mods/functionalstorage.js
@@ -8,6 +8,15 @@ ServerEvents.recipes(event => {
         'minecraft:andesite'
     );
 
+    event.replaceInput({output: 'functionalstorage:framed_storage_controller'},
+        'minecraft:quartz_block',
+        'minecraft:andesite'
+    );
+    event.replaceInput({output: 'functionalstorage:framed_storage_controller'},
+        'minecraft:comparator',
+        '#kubejs:grist/intelligent/basic'
+    );
+
     event.replaceInput({output: 'functionalstorage:linking_tool'},
         'minecraft:diamond',
         '#kubejs:grist/intelligent/basic'
diff --git a/kubejs/server_scripts/mods/powder_power.js b/kubejs/server_scripts/mods/powder_power.js
index eb84c27..41e365e 100755
--- a/kubejs/server_scripts/mods/powder_power.js
+++ b/kubejs/server_scripts/mods/powder_power.js
@@ -1,10 +1,12 @@
 ServerEvents.recipes(event => {
-    event.recipes.thermal.pulverizer('powder_power:powder_redstone', ['#forge:dusts/redstone']);
-    event.recipes.thermal.pulverizer('powder_power:powder_lapis', ['#forge:dusts/lapis']);
-    event.recipes.thermal.pulverizer('powder_power:powder_copper', ['#forge:dusts/copper']);
+    // Powders are created by further crushing dusts
     event.recipes.thermal.pulverizer('powder_power:powder_end_pearl', ['#forge:dusts/ender_pearl']);
-    event.recipes.thermal.pulverizer('powder_power:powder_prismarine', ['#forge:dusts/prismarine']);
-    event.recipes.thermal.pulverizer('powder_power:powder_obsidian', ['#forge:obsidian']);
+    event.recipes.createCrushing(`powder_power:powder_end_pearl`, `#forge:dusts/ender_pearl`);
     event.recipes.thermal.pulverizer('powder_power:powder_nether_quartz', ['#forge:dusts/quartz']);
-    event.recipes.thermal.pulverizer('powder_power:powder_ghast_tear', ['minecraft:ghast_tear']);
+    event.recipes.createCrushing(`powder_power:powder_nether_quartz`, `#forge:dusts/quartz`);
+
+    ['redstone', 'lapis', 'copper', 'prismarine', 'obsidian', 'ghast_tear'].forEach(element => {
+        event.recipes.thermal.pulverizer(`powder_power:powder_${element}`, [`#forge:dusts/${element}`]);
+        event.recipes.createCrushing(`powder_power:powder_${element}`, `#forge:dusts/${element}`);
+    });
 });
\ No newline at end of file
diff --git a/mods/kubejs-create.pw.toml b/mods/kubejs-create.pw.toml
index ba5cae5..2eb066e 100644
--- a/mods/kubejs-create.pw.toml
+++ b/mods/kubejs-create.pw.toml
@@ -3,11 +3,11 @@ filename = "kubejs-create-forge-2001.3.0-build.8.jar"
 side = "both"
 
 [download]
-hash-format = "sha1"
-hash = "cbeb6643d1cea979a7e01c87cfb08b9210a1c393"
-mode = "metadata:curseforge"
+url = "https://cdn.modrinth.com/data/T38eAZQC/versions/5vppyenb/kubejs-create-forge-2001.3.0-build.8.jar"
+hash-format = "sha512"
+hash = "1c6fa2b3dc52683bdf124ebfc507ad5adb5f1ceb147181466be4e495bc6eab1411976911477df538369ff2529607cb73bf3b4a05a8ed2f24804f4891d7635981"
 
 [update]
-[update.curseforge]
-file-id = 6265498
-project-id = 429371
+[update.modrinth]
+mod-id = "T38eAZQC"
+version = "5vppyenb"
diff --git a/mods/kubejs.pw.toml b/mods/kubejs.pw.toml
index f05622f..9f21a92 100644
--- a/mods/kubejs.pw.toml
+++ b/mods/kubejs.pw.toml
@@ -3,11 +3,11 @@ filename = "kubejs-forge-2001.6.5-build.16.jar"
 side = "both"
 
 [download]
-hash-format = "sha1"
-hash = "93fcf0eacc5dc08a4f719eaaed1dc93f0dc80f66"
-mode = "metadata:curseforge"
+url = "https://cdn.modrinth.com/data/umyGl7zF/versions/g5igndAv/kubejs-forge-2001.6.5-build.16.jar"
+hash-format = "sha512"
+hash = "819f730d2a9d980bb246d30d67793f06f6a1608381c7ce3577cf25e70dd3d595271f8fcfbf3ae037168842f660e79e49846756bd18c79793b310ff18ab826cbd"
 
 [update]
-[update.curseforge]
-file-id = 5853326
-project-id = 238086
+[update.modrinth]
+mod-id = "umyGl7zF"
+version = "g5igndAv"
diff --git a/pack.toml b/pack.toml
index 11e7218..42ab7b9 100644
--- a/pack.toml
+++ b/pack.toml
@@ -6,7 +6,7 @@ pack-format = "packwiz:1.1.0"
 [index]
 file = "index.toml"
 hash-format = "sha256"
-hash = "368310f68e32126cd7ff8852286151a1bc2deb7f0cf92c8681d98614779b7663"
+hash = "9fd0b3d6c4fe17c6785eeb02ebad9e82bece8c06728b0a8006b0a6094862343a"
 
 [versions]
 forge = "47.4.0"