diff --git a/src/containers/load-button.jsx b/src/containers/load-button.jsx
index 4d7ca30b0f18c004469223ca9e59f6ceee907f8b..ad6ba9d4e9388d0f76377fd5c5e6dbd471ab93b1 100644
--- a/src/containers/load-button.jsx
+++ b/src/containers/load-button.jsx
@@ -14,12 +14,9 @@ class LoadButton extends React.Component {
             'handleClick'
         ]);
     }
-    shouldComponentUpdate () {
-        return false;
-    }
     handleChange (e) {
         const reader = new FileReader();
-        reader.onload = () => this.props.loadProject(reader.result);
+        reader.onload = () => this.props.vm.fromJSON(reader.result);
         reader.readAsText(e.target.files[0]);
     }
     handleClick () {
@@ -30,7 +27,7 @@ class LoadButton extends React.Component {
     }
     render () {
         const {
-            loadProject, // eslint-disable-line no-unused-vars
+            vm, // eslint-disable-line no-unused-vars
             ...props
         } = this.props;
         return (
@@ -45,11 +42,13 @@ class LoadButton extends React.Component {
 }
 
 LoadButton.propTypes = {
-    loadProject: PropTypes.func.isRequired
+    vm: PropTypes.shape({
+        fromJSON: PropTypes.func
+    })
 };
 
 const mapStateToProps = state => ({
-    loadProject: state.vm.fromJSON.bind(state.vm)
+    vm: state.vm
 });
 
 export default connect(
diff --git a/src/containers/save-button.jsx b/src/containers/save-button.jsx
index 5516ba2c76a46b2a22b6011c2dfd74000c8515ff..8e130fbf524012f8597006da58fb43bd58011438 100644
--- a/src/containers/save-button.jsx
+++ b/src/containers/save-button.jsx
@@ -14,11 +14,8 @@ class SaveButton extends React.Component {
             'handleClick'
         ]);
     }
-    shouldComponentUpdate () {
-        return false;
-    }
     handleClick () {
-        const json = this.props.saveProjectSb3();
+        const json = this.props.vm.saveProjectSb3();
 
         // Download project data into a file - create link element,
         // simulate click on it, and then remove it.
@@ -39,7 +36,7 @@ class SaveButton extends React.Component {
     }
     render () {
         const {
-            saveProjectSb3, // eslint-disable-line no-unused-vars
+            vm, // eslint-disable-line no-unused-vars
             ...props
         } = this.props;
         return (
@@ -60,11 +57,12 @@ class SaveButton extends React.Component {
 }
 
 SaveButton.propTypes = {
-    saveProjectSb3: PropTypes.func.isRequired
-};
+    vm: PropTypes.shape({
+        saveProjectSb3: PropTypes.func
+    })};
 
 const mapStateToProps = state => ({
-    saveProjectSb3: state.vm.saveProjectSb3.bind(state.vm)
+    vm: state.vm
 });
 
 export default connect(