diff --git a/package-lock.json b/package-lock.json
index 5c837bb..bbf32e8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,6 +4,45 @@
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
+        "@ampproject/remapping": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+            "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+            "dev": true,
+            "requires": {
+                "@jridgewell/gen-mapping": "^0.3.5",
+                "@jridgewell/trace-mapping": "^0.3.24"
+            },
+            "dependencies": {
+                "@jridgewell/gen-mapping": {
+                    "version": "0.3.5",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+                    "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+                    "dev": true,
+                    "requires": {
+                        "@jridgewell/set-array": "^1.2.1",
+                        "@jridgewell/sourcemap-codec": "^1.4.10",
+                        "@jridgewell/trace-mapping": "^0.3.24"
+                    }
+                },
+                "@jridgewell/set-array": {
+                    "version": "1.2.1",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+                    "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+                    "dev": true
+                },
+                "@jridgewell/trace-mapping": {
+                    "version": "0.3.25",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+                    "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+                    "dev": true,
+                    "requires": {
+                        "@jridgewell/resolve-uri": "^3.1.0",
+                        "@jridgewell/sourcemap-codec": "^1.4.14"
+                    }
+                }
+            }
+        },
         "@babel/cli": {
             "version": "7.16.0",
             "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.16.0.tgz",
@@ -1699,72 +1738,6 @@
             "integrity": "sha512-BYTDSqvjj6ZiWb8l46T5BKrVfkelct+vK2mh7joHu5UWtJMUzLkb0KQMV1+6SUy4xHFnws33XS7/+JSW1yeZOQ==",
             "dev": true
         },
-        "@exabyte-io/made.js": {
-            "version": "2024.3.21-1",
-            "resolved": "https://registry.npmjs.org/@exabyte-io/made.js/-/made.js-2024.3.21-1.tgz",
-            "integrity": "sha512-r+9m0lMnf2Mpk52rQUL92D7viqhXAuR6ubJTFSRaa7maao8frnpz3HtUhknt8qb2NJNb1wpcohmHtvNH1dpGgQ==",
-            "dev": true,
-            "requires": {
-                "@babel/core": "^7.16.0",
-                "@exabyte-io/periodic-table.js": "2022.5.28-0",
-                "@types/chai": "^4.3.5",
-                "@types/mocha": "^10.0.1",
-                "@types/node": "^20.4.2",
-                "@types/underscore": "^1.11.6",
-                "@types/underscore.string": "^0.0.40",
-                "array-almost-equal": "^1.0.0",
-                "crypto-js": "^3.1.9-1",
-                "lodash": "^4.17.*",
-                "mathjs": "^3.9.0",
-                "typescript": "^4.5.5",
-                "underscore": "^1.8.3",
-                "underscore.string": "^3.3.4"
-            },
-            "dependencies": {
-                "@babel/register": {
-                    "version": "7.16.0",
-                    "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.0.tgz",
-                    "integrity": "sha512-lzl4yfs0zVXnooeLE0AAfYaT7F3SPA8yB2Bj4W1BiZwLbMS3MZH35ZvCWSRHvneUugwuM+Wsnrj7h0F7UmU3NQ==",
-                    "dev": true,
-                    "requires": {
-                        "clone-deep": "^4.0.1",
-                        "find-cache-dir": "^2.0.0",
-                        "make-dir": "^2.1.0",
-                        "pirates": "^4.0.0",
-                        "source-map-support": "^0.5.16"
-                    }
-                },
-                "@exabyte-io/periodic-table.js": {
-                    "version": "2022.5.28-0",
-                    "resolved": "https://registry.npmjs.org/@exabyte-io/periodic-table.js/-/periodic-table.js-2022.5.28-0.tgz",
-                    "integrity": "sha512-BA+u07dkt4e8yqcBHTv5szXXeMyNFcW0G2Ki3Vbugv6ku6dfl4+Sji8cs5PUr+hkYptc7rTg5r89lfr6Vt+oJw==",
-                    "dev": true,
-                    "requires": {
-                        "@babel/cli": "7.16.0",
-                        "@babel/core": "7.16.0",
-                        "@babel/eslint-parser": "7.16.3",
-                        "@babel/plugin-proposal-class-properties": "7.16.0",
-                        "@babel/preset-env": "7.16.4",
-                        "@babel/register": "7.16.0",
-                        "underscore": "1.8.3"
-                    },
-                    "dependencies": {
-                        "underscore": {
-                            "version": "1.8.3",
-                            "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
-                            "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==",
-                            "dev": true
-                        }
-                    }
-                },
-                "crypto-js": {
-                    "version": "3.3.0",
-                    "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz",
-                    "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==",
-                    "dev": true
-                }
-            }
-        },
         "@exabyte-io/periodic-table.js": {
             "version": "2022.6.8-0",
             "resolved": "https://registry.npmjs.org/@exabyte-io/periodic-table.js/-/periodic-table.js-2022.6.8-0.tgz",
@@ -1993,6 +1966,467 @@
                 }
             }
         },
+        "@mat3ra/made": {
+            "version": "2024.3.23-1",
+            "resolved": "https://registry.npmjs.org/@mat3ra/made/-/made-2024.3.23-1.tgz",
+            "integrity": "sha512-zRj+SoMzT9chbtfD5AJkxKWXKD8Wd7Bp0K5UV5QtzplS5VBKS1CFZTL3BuKfipR5CFwJ/sZd4tqm21UJeLKFww==",
+            "dev": true,
+            "requires": {
+                "@babel/core": "7.24.1",
+                "@exabyte-io/periodic-table.js": "2022.5.28-0",
+                "@types/chai": "^4.3.5",
+                "@types/mocha": "^10.0.1",
+                "@types/node": "^20.4.2",
+                "@types/underscore": "^1.11.6",
+                "@types/underscore.string": "^0.0.40",
+                "array-almost-equal": "^1.0.0",
+                "crypto-js": "4.2.0",
+                "lodash": "^4.17.*",
+                "mathjs": "12.4.1",
+                "typescript": "^4.5.5",
+                "underscore": "^1.8.3",
+                "underscore.string": "^3.3.4"
+            },
+            "dependencies": {
+                "@babel/code-frame": {
+                    "version": "7.24.2",
+                    "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz",
+                    "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/highlight": "^7.24.2",
+                        "picocolors": "^1.0.0"
+                    }
+                },
+                "@babel/compat-data": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz",
+                    "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==",
+                    "dev": true
+                },
+                "@babel/core": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.1.tgz",
+                    "integrity": "sha512-F82udohVyIgGAY2VVj/g34TpFUG606rumIHjTfVbssPg2zTR7PuuEpZcX8JA6sgBfIYmJrFtWgPvHQuJamVqZQ==",
+                    "dev": true,
+                    "requires": {
+                        "@ampproject/remapping": "^2.2.0",
+                        "@babel/code-frame": "^7.24.1",
+                        "@babel/generator": "^7.24.1",
+                        "@babel/helper-compilation-targets": "^7.23.6",
+                        "@babel/helper-module-transforms": "^7.23.3",
+                        "@babel/helpers": "^7.24.1",
+                        "@babel/parser": "^7.24.1",
+                        "@babel/template": "^7.24.0",
+                        "@babel/traverse": "^7.24.1",
+                        "@babel/types": "^7.24.0",
+                        "convert-source-map": "^2.0.0",
+                        "debug": "^4.1.0",
+                        "gensync": "^1.0.0-beta.2",
+                        "json5": "^2.2.3",
+                        "semver": "^6.3.1"
+                    }
+                },
+                "@babel/generator": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz",
+                    "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.24.0",
+                        "@jridgewell/gen-mapping": "^0.3.5",
+                        "@jridgewell/trace-mapping": "^0.3.25",
+                        "jsesc": "^2.5.1"
+                    }
+                },
+                "@babel/helper-compilation-targets": {
+                    "version": "7.23.6",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz",
+                    "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/compat-data": "^7.23.5",
+                        "@babel/helper-validator-option": "^7.23.5",
+                        "browserslist": "^4.22.2",
+                        "lru-cache": "^5.1.1",
+                        "semver": "^6.3.1"
+                    }
+                },
+                "@babel/helper-environment-visitor": {
+                    "version": "7.22.20",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz",
+                    "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==",
+                    "dev": true
+                },
+                "@babel/helper-function-name": {
+                    "version": "7.23.0",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz",
+                    "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/template": "^7.22.15",
+                        "@babel/types": "^7.23.0"
+                    }
+                },
+                "@babel/helper-hoist-variables": {
+                    "version": "7.22.5",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz",
+                    "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.22.5"
+                    }
+                },
+                "@babel/helper-module-imports": {
+                    "version": "7.24.3",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz",
+                    "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.24.0"
+                    }
+                },
+                "@babel/helper-module-transforms": {
+                    "version": "7.23.3",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz",
+                    "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/helper-environment-visitor": "^7.22.20",
+                        "@babel/helper-module-imports": "^7.22.15",
+                        "@babel/helper-simple-access": "^7.22.5",
+                        "@babel/helper-split-export-declaration": "^7.22.6",
+                        "@babel/helper-validator-identifier": "^7.22.20"
+                    }
+                },
+                "@babel/helper-simple-access": {
+                    "version": "7.22.5",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz",
+                    "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.22.5"
+                    }
+                },
+                "@babel/helper-split-export-declaration": {
+                    "version": "7.22.6",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz",
+                    "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/types": "^7.22.5"
+                    }
+                },
+                "@babel/helper-validator-identifier": {
+                    "version": "7.22.20",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
+                    "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
+                    "dev": true
+                },
+                "@babel/helper-validator-option": {
+                    "version": "7.23.5",
+                    "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz",
+                    "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==",
+                    "dev": true
+                },
+                "@babel/helpers": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz",
+                    "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/template": "^7.24.0",
+                        "@babel/traverse": "^7.24.1",
+                        "@babel/types": "^7.24.0"
+                    }
+                },
+                "@babel/highlight": {
+                    "version": "7.24.2",
+                    "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz",
+                    "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/helper-validator-identifier": "^7.22.20",
+                        "chalk": "^2.4.2",
+                        "js-tokens": "^4.0.0",
+                        "picocolors": "^1.0.0"
+                    }
+                },
+                "@babel/parser": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz",
+                    "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==",
+                    "dev": true
+                },
+                "@babel/register": {
+                    "version": "7.16.0",
+                    "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.16.0.tgz",
+                    "integrity": "sha512-lzl4yfs0zVXnooeLE0AAfYaT7F3SPA8yB2Bj4W1BiZwLbMS3MZH35ZvCWSRHvneUugwuM+Wsnrj7h0F7UmU3NQ==",
+                    "dev": true,
+                    "requires": {
+                        "clone-deep": "^4.0.1",
+                        "find-cache-dir": "^2.0.0",
+                        "make-dir": "^2.1.0",
+                        "pirates": "^4.0.0",
+                        "source-map-support": "^0.5.16"
+                    }
+                },
+                "@babel/runtime": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz",
+                    "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==",
+                    "dev": true,
+                    "requires": {
+                        "regenerator-runtime": "^0.14.0"
+                    }
+                },
+                "@babel/template": {
+                    "version": "7.24.0",
+                    "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz",
+                    "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/code-frame": "^7.23.5",
+                        "@babel/parser": "^7.24.0",
+                        "@babel/types": "^7.24.0"
+                    }
+                },
+                "@babel/traverse": {
+                    "version": "7.24.1",
+                    "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz",
+                    "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/code-frame": "^7.24.1",
+                        "@babel/generator": "^7.24.1",
+                        "@babel/helper-environment-visitor": "^7.22.20",
+                        "@babel/helper-function-name": "^7.23.0",
+                        "@babel/helper-hoist-variables": "^7.22.5",
+                        "@babel/helper-split-export-declaration": "^7.22.6",
+                        "@babel/parser": "^7.24.1",
+                        "@babel/types": "^7.24.0",
+                        "debug": "^4.3.1",
+                        "globals": "^11.1.0"
+                    }
+                },
+                "@babel/types": {
+                    "version": "7.24.0",
+                    "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz",
+                    "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/helper-string-parser": "^7.23.4",
+                        "@babel/helper-validator-identifier": "^7.22.20",
+                        "to-fast-properties": "^2.0.0"
+                    }
+                },
+                "@exabyte-io/periodic-table.js": {
+                    "version": "2022.5.28-0",
+                    "resolved": "https://registry.npmjs.org/@exabyte-io/periodic-table.js/-/periodic-table.js-2022.5.28-0.tgz",
+                    "integrity": "sha512-BA+u07dkt4e8yqcBHTv5szXXeMyNFcW0G2Ki3Vbugv6ku6dfl4+Sji8cs5PUr+hkYptc7rTg5r89lfr6Vt+oJw==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/cli": "7.16.0",
+                        "@babel/core": "7.16.0",
+                        "@babel/eslint-parser": "7.16.3",
+                        "@babel/plugin-proposal-class-properties": "7.16.0",
+                        "@babel/preset-env": "7.16.4",
+                        "@babel/register": "7.16.0",
+                        "underscore": "1.8.3"
+                    },
+                    "dependencies": {
+                        "@babel/core": {
+                            "version": "7.16.0",
+                            "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz",
+                            "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==",
+                            "dev": true,
+                            "requires": {
+                                "@babel/code-frame": "^7.16.0",
+                                "@babel/generator": "^7.16.0",
+                                "@babel/helper-compilation-targets": "^7.16.0",
+                                "@babel/helper-module-transforms": "^7.16.0",
+                                "@babel/helpers": "^7.16.0",
+                                "@babel/parser": "^7.16.0",
+                                "@babel/template": "^7.16.0",
+                                "@babel/traverse": "^7.16.0",
+                                "@babel/types": "^7.16.0",
+                                "convert-source-map": "^1.7.0",
+                                "debug": "^4.1.0",
+                                "gensync": "^1.0.0-beta.2",
+                                "json5": "^2.1.2",
+                                "semver": "^6.3.0",
+                                "source-map": "^0.5.0"
+                            }
+                        },
+                        "convert-source-map": {
+                            "version": "1.9.0",
+                            "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+                            "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+                            "dev": true
+                        },
+                        "underscore": {
+                            "version": "1.8.3",
+                            "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
+                            "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==",
+                            "dev": true
+                        }
+                    }
+                },
+                "@jridgewell/gen-mapping": {
+                    "version": "0.3.5",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+                    "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+                    "dev": true,
+                    "requires": {
+                        "@jridgewell/set-array": "^1.2.1",
+                        "@jridgewell/sourcemap-codec": "^1.4.10",
+                        "@jridgewell/trace-mapping": "^0.3.24"
+                    }
+                },
+                "@jridgewell/set-array": {
+                    "version": "1.2.1",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+                    "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+                    "dev": true
+                },
+                "@jridgewell/trace-mapping": {
+                    "version": "0.3.25",
+                    "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+                    "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+                    "dev": true,
+                    "requires": {
+                        "@jridgewell/resolve-uri": "^3.1.0",
+                        "@jridgewell/sourcemap-codec": "^1.4.14"
+                    }
+                },
+                "browserslist": {
+                    "version": "4.23.0",
+                    "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
+                    "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
+                    "dev": true,
+                    "requires": {
+                        "caniuse-lite": "^1.0.30001587",
+                        "electron-to-chromium": "^1.4.668",
+                        "node-releases": "^2.0.14",
+                        "update-browserslist-db": "^1.0.13"
+                    }
+                },
+                "caniuse-lite": {
+                    "version": "1.0.30001600",
+                    "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz",
+                    "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==",
+                    "dev": true
+                },
+                "complex.js": {
+                    "version": "2.1.1",
+                    "resolved": "https://registry.npmjs.org/complex.js/-/complex.js-2.1.1.tgz",
+                    "integrity": "sha512-8njCHOTtFFLtegk6zQo0kkVX1rngygb/KQI6z1qZxlFI3scluC+LVTCFbrkWjBv4vvLlbQ9t88IPMC6k95VTTg==",
+                    "dev": true
+                },
+                "convert-source-map": {
+                    "version": "2.0.0",
+                    "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+                    "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+                    "dev": true
+                },
+                "decimal.js": {
+                    "version": "10.4.3",
+                    "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+                    "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+                    "dev": true
+                },
+                "electron-to-chromium": {
+                    "version": "1.4.715",
+                    "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz",
+                    "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==",
+                    "dev": true
+                },
+                "fraction.js": {
+                    "version": "4.3.4",
+                    "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.4.tgz",
+                    "integrity": "sha512-pwiTgt0Q7t+GHZA4yaLjObx4vXmmdcS0iSJ19o8d/goUGgItX9UZWKWNnLHehxviD8wU2IWRsnR8cD5+yOJP2Q==",
+                    "dev": true
+                },
+                "json5": {
+                    "version": "2.2.3",
+                    "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+                    "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+                    "dev": true
+                },
+                "lru-cache": {
+                    "version": "5.1.1",
+                    "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+                    "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+                    "dev": true,
+                    "requires": {
+                        "yallist": "^3.0.2"
+                    }
+                },
+                "mathjs": {
+                    "version": "12.4.1",
+                    "resolved": "https://registry.npmjs.org/mathjs/-/mathjs-12.4.1.tgz",
+                    "integrity": "sha512-welnW3khgwYjPYvECFHO+xkCxAx9IKIIPDDWPi8B5rKAvmgoEHnQX9slEmHKZTNaJiE+OS4qrJJcB4sfDn/4sw==",
+                    "dev": true,
+                    "requires": {
+                        "@babel/runtime": "^7.24.0",
+                        "complex.js": "^2.1.1",
+                        "decimal.js": "^10.4.3",
+                        "escape-latex": "^1.2.0",
+                        "fraction.js": "4.3.4",
+                        "javascript-natural-sort": "^0.7.1",
+                        "seedrandom": "^3.0.5",
+                        "tiny-emitter": "^2.1.0",
+                        "typed-function": "^4.1.1"
+                    }
+                },
+                "node-releases": {
+                    "version": "2.0.14",
+                    "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+                    "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+                    "dev": true
+                },
+                "regenerator-runtime": {
+                    "version": "0.14.1",
+                    "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+                    "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+                    "dev": true
+                },
+                "semver": {
+                    "version": "6.3.1",
+                    "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+                    "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+                    "dev": true
+                },
+                "tiny-emitter": {
+                    "version": "2.1.0",
+                    "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz",
+                    "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==",
+                    "dev": true
+                },
+                "typed-function": {
+                    "version": "4.1.1",
+                    "resolved": "https://registry.npmjs.org/typed-function/-/typed-function-4.1.1.tgz",
+                    "integrity": "sha512-Pq1DVubcvibmm8bYcMowjVnnMwPVMeh0DIdA8ad8NZY2sJgapANJmiigSUwlt+EgXxpfIv8MWrQXTIzkfYZLYQ==",
+                    "dev": true
+                },
+                "update-browserslist-db": {
+                    "version": "1.0.13",
+                    "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
+                    "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
+                    "dev": true,
+                    "requires": {
+                        "escalade": "^3.1.1",
+                        "picocolors": "^1.0.0"
+                    }
+                },
+                "yallist": {
+                    "version": "3.1.1",
+                    "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+                    "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+                    "dev": true
+                }
+            }
+        },
         "@nicolo-ribaudo/chokidar-2": {
             "version": "2.1.8-no-fsevents.3",
             "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz",
@@ -5933,6 +6367,12 @@
             "integrity": "sha512-34EQV6AAHQGhoc0tn/96a9Fsi6v2xdqe/dMUwljGRaFOzR3EgRmECvD0O8vi8X+/uQ50LGHfkNu/Eue5TPKZkQ==",
             "dev": true
         },
+        "seedrandom": {
+            "version": "3.0.5",
+            "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
+            "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==",
+            "dev": true
+        },
         "semver": {
             "version": "5.7.1",
             "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
diff --git a/package.json b/package.json
index 2a6ef7b..e345754 100644
--- a/package.json
+++ b/package.json
@@ -46,7 +46,7 @@
     "devDependencies": {
         "@exabyte-io/code.js": "2024.2.29-0",
         "@exabyte-io/eslint-config": "^2022.11.17-0",
-        "@exabyte-io/made.js": "2024.3.21-1",
+        "@mat3ra/made": "2024.3.23-1",
         "@exabyte-io/application-flavors.js": "2024.3.21-0",
         "@mat3ra/esse": "2024.3.20-0",
         "chai": "^4.3.4",
@@ -67,7 +67,7 @@
     },
     "peerDependencies": {
         "@exabyte-io/code.js": "*",
-        "@exabyte-io/made.js": "*",
+        "@mat3ra/made": "*",
         "@exabyte-io/application-flavors.js": "*"
     },
     "engines": {
diff --git a/src/context/providers/espresso/providers.js b/src/context/providers/espresso/providers.js
index 3db5773..970f5d5 100644
--- a/src/context/providers/espresso/providers.js
+++ b/src/context/providers/espresso/providers.js
@@ -7,8 +7,8 @@ import {
     MethodDataContextMixin,
     WorkflowContextMixin,
 } from "@exabyte-io/code.js/dist/context";
-import { Made } from "@exabyte-io/made.js";
 import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
+import { Made } from "@mat3ra/made";
 import lodash from "lodash";
 import { mix } from "mixwith";
 import path from "path";
diff --git a/src/context/providers/nwchem/providers.js b/src/context/providers/nwchem/providers.js
index 3b4fdb1..d705959 100644
--- a/src/context/providers/nwchem/providers.js
+++ b/src/context/providers/nwchem/providers.js
@@ -4,8 +4,8 @@ import {
     MethodDataContextMixin,
     WorkflowContextMixin,
 } from "@exabyte-io/code.js/dist/context";
-import { Made } from "@exabyte-io/made.js";
 import { PERIODIC_TABLE } from "@exabyte-io/periodic-table.js";
+import { Made } from "@mat3ra/made";
 import lodash from "lodash";
 import { mix } from "mixwith";
 import _ from "underscore";
diff --git a/src/context/providers/vasp/providers.js b/src/context/providers/vasp/providers.js
index 94e26f0..a230576 100644
--- a/src/context/providers/vasp/providers.js
+++ b/src/context/providers/vasp/providers.js
@@ -7,7 +7,7 @@ import {
     MethodDataContextMixin,
     WorkflowContextMixin,
 } from "@exabyte-io/code.js/dist/context";
-import { Made } from "@exabyte-io/made.js";
+import { Made } from "@mat3ra/made";
 import { mix } from "mixwith";
 
 import { ExecutableContextProvider } from "../../providers";
