diff --git a/lerna-debug.log b/lerna-debug.log
index be06f32f256886de36dea748b1ac8fd40a007743..e1548e690e6d669f9717d6e822380d945b4d9d9a 100644
--- a/lerna-debug.log
+++ b/lerna-debug.log
@@ -1,21 +1,67 @@
-0 silly input [ 'clean' ]
-1 silly flags { _: [ 'run' ],
+0 silly input [ 'build' ]
+1 silly flags {
+1 silly flags   _: [ 'run' ],
 1 silly flags   'reject-cycles': false,
 1 silly flags   rejectCycles: false,
-1 silly flags   parallel: true,
-1 silly flags   script: 'clean',
-1 silly flags   args: [] }
-2 verbose rootPath /home/chris/workspace/wax-prosemirror
+1 silly flags   script: 'build',
+1 silly flags   args: []
+1 silly flags }
+2 verbose rootPath /home/chris/workspace/prose
 3 info version 2.11.0
-4 silly existsSync /home/chris/workspace/wax-prosemirror/VERSION
-5 error EPACKAGES Errored while collecting packages and package graph
-6 error JSONError: Unexpected token } in JSON at position 646 while parsing near '...own": "^1.6.2",    },  "devDependencie...' in wax-prosemirror-components/package.json
-6 error     at module.exports (/home/chris/workspace/wax-prosemirror/node_modules/parse-json/index.js:26:19)
-6 error     at parse (/home/chris/workspace/wax-prosemirror/node_modules/load-json-file/index.js:8:29)
-6 error     at Function.module.exports.sync.fp [as sync] (/home/chris/workspace/wax-prosemirror/node_modules/load-json-file/index.js:11:29)
-6 error     at Function.module.exports.sync (/home/chris/workspace/wax-prosemirror/node_modules/lerna/node_modules/read-pkg/index.js:40:25)
-6 error     at /home/chris/workspace/wax-prosemirror/node_modules/lerna/lib/PackageUtilities.js:138:47
-6 error     at Array.forEach (<anonymous>)
-6 error     at /home/chris/workspace/wax-prosemirror/node_modules/lerna/lib/PackageUtilities.js:132:86
-6 error     at Array.forEach (<anonymous>)
-6 error     at Function.getPackages (/home/chris/workspace/wax-prosemirror/node_modules/lerna/lib/PackageUtilities.js:131:22)
+4 silly existsSync /home/chris/workspace/prose/VERSION
+5 silly initialize attempt
+6 silly initialize success
+7 silly execute attempt
+8 silly runScriptInDir build [] wax-prosemirror-core
+9 silly getExecOpts { cwd: '/home/chris/workspace/prose/wax-prosemirror-core' }
+10 silly runScriptInDir build [] wax-prosemirror-schema
+11 silly getExecOpts { cwd: '/home/chris/workspace/prose/wax-prosemirror-schema' }
+12 silly runScriptInDir build [] wax-prosemirror-components
+13 silly getExecOpts { cwd: '/home/chris/workspace/prose/wax-prosemirror-components' }
+14 silly runScriptInDir build [] wax-prosemirror-themes
+15 silly getExecOpts { cwd: '/home/chris/workspace/prose/wax-prosemirror-themes' }
+16 silly runScriptInDir build [] wax-prosemirror-utilities
+17 silly getExecOpts { cwd: '/home/chris/workspace/prose/wax-prosemirror-utilities' }
+18 error build Errored while running script in 'wax-prosemirror-core'
+19 error execute callback with error
+20 error Error: Command failed: yarn run build
+20 error loaded rollup.config.js with warnings
+20 error (!) Unused external imports
+20 error terser imported from external module 'rollup-plugin-terser' but never used
+20 error
+20 error ./index.js → dist/index.js...
+20 error [!] (plugin babel) SyntaxError: /home/chris/workspace/prose/wax-prosemirror-core/src/Wax.js: Unexpected token, expected ";" (63:7)
+20 error
+20 error   61 |         application.resetApp()
+20 error   62 |       }
+20 error > 63 |   }, []);
+20 error      |        ^
+20 error   64 |
+20 error   65 |   const {
+20 error   66 |     autoFocus,
+20 error src/Wax.js (63:7)
+20 error SyntaxError: /home/chris/workspace/prose/wax-prosemirror-core/src/Wax.js: Unexpected token, expected ";" (63:7)
+20 error
+20 error   61 |         application.resetApp()
+20 error   62 |       }
+20 error > 63 |   }, []);
+20 error      |        ^
+20 error   64 |
+20 error   65 |   const {
+20 error   66 |     autoFocus,
+20 error     at Object._raise (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/location.js:241:45)
+20 error     at Object.raiseWithData (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/location.js:236:17)
+20 error     at Object.raise (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/location.js:220:17)
+20 error     at Object.unexpected (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/util.js:149:16)
+20 error     at Object.semicolon (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/util.js:122:40)
+20 error     at Object.parseReturnStatement (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/statement.js:573:12)
+20 error     at Object.parseStatementContent (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/statement.js:195:21)
+20 error     at Object.parseStatement (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/statement.js:149:17)
+20 error     at Object.parseStatement (/home/chris/workspace/prose/node_modules/@babel/parser/src/plugins/flow.js:1740:28)
+20 error     at Object.parseBlockOrModuleBlockBody (/home/chris/workspace/prose/node_modules/@babel/parser/src/parser/statement.js:863:25)
+20 error
+20 error error Command failed with exit code 1.
+20 error $ BABEL_ENV=production rollup -c
+20 error info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
+20 error
+20 error     at /home/chris/workspace/prose/node_modules/lerna/node_modules/execa/index.js:236:11
diff --git a/wax-prosemirror-core/src/Application.js b/wax-prosemirror-core/src/Application.js
index 77344349307396d6c6927ce8d92ed1fbd44b6792..8410e92fbef60ec54ef6b41feb7870dd09bc5d1e 100644
--- a/wax-prosemirror-core/src/Application.js
+++ b/wax-prosemirror-core/src/Application.js
@@ -46,7 +46,7 @@ export default class Application {
 
   bootServices() {
     const services = this.config.get("config.services");
-    services.forEach((plugin) => {
+    services.forEach(plugin => {
       if (plugin.boot) {
         plugin.boot();
       }
@@ -62,16 +62,23 @@ export default class Application {
     return this.schema.getSchema();
   }
 
+  resetApp() {
+    this.container = {};
+    this.config = {};
+    this.PmPlugins = {};
+    this.schema = {};
+  }
+
   static create(config) {
     /* Merge Core Config with User Config */
     const appConfig = deepmerge({ config: defaultConfig }, config, {
-      customMerge: (key) => {
+      customMerge: key => {
         if (key === "services") {
           return (coreService, configService) => {
             return coreService.concat(configService);
           };
         }
-      },
+      }
     });
 
     /*
@@ -79,22 +86,28 @@ export default class Application {
     */
     const container = new Container();
     /*
-    
+
     Set base bindings for the App to work
     */
-    container.bind("PmPlugins").to(PmPlugins).inSingletonScope();
+    container
+      .bind("PmPlugins")
+      .to(PmPlugins)
+      .inSingletonScope();
 
     container.bind("Wax").toFactory(() => new Application(container));
 
     container.bind("config").toConstantValue(appConfig);
-    container.bind("Config").to(Config).inSingletonScope();
+    container
+      .bind("Config")
+      .to(Config)
+      .inSingletonScope();
 
     /*
     Start the App
     */
     const app = container.get("Wax");
     app.setConfig();
-    appConfig.config.PmPlugins.forEach((configPlugin) => {
+    appConfig.config.PmPlugins.forEach(configPlugin => {
       app.PmPlugins.add(configPlugin.key, configPlugin);
     });
     app.registerServices();
diff --git a/wax-prosemirror-core/src/Wax.js b/wax-prosemirror-core/src/Wax.js
index 276b44ac22562b9414742d079a2b9ccb4cc90386..ba733eeb0dbbb3c9b19f96b31645246d1e93a3d2 100644
--- a/wax-prosemirror-core/src/Wax.js
+++ b/wax-prosemirror-core/src/Wax.js
@@ -54,7 +54,9 @@ const Wax = props => {
   const [application, setApplication] = useState();
 
   useEffect(() => {
-    setApplication(createApplication(props));
+    const newApplication = createApplication(props);
+    setApplication(newApplication);
+    return () => newApplication.resetApp();
   }, []);
 
   const {
diff --git a/wax-prosemirror-core/src/WaxView.js b/wax-prosemirror-core/src/WaxView.js
index 34e36b88aceed50bcf07f471f064d7f062318cea..e6ab661e0ad8433d5547d3ddc513295a67488c0f 100644
--- a/wax-prosemirror-core/src/WaxView.js
+++ b/wax-prosemirror-core/src/WaxView.js
@@ -53,6 +53,8 @@ export default props => {
     );
     if (debug) applyDevTools(view);
     if (autoFocus) view.focus();
+
+    return () => view.destroy();
   }, []);
 
   const dispatchTransaction = transaction => {