diff --git a/src/components/AddNodes-old.vue b/src/components/AddNodes-old.vue
deleted file mode 100644
index a7c4df9c7b7cbcc99508b01a969b5f2f69f524f6..0000000000000000000000000000000000000000
--- a/src/components/AddNodes-old.vue
+++ /dev/null
@@ -1,265 +0,0 @@
-/// this is from Vue 2 // check and rebuild
-<template>
-  <div>
-    <div v-for="(nodes, index) in $options.myArray" v-bind:key="index">
-      <form
-        class="nodes"
-        :style="{
-          backgroundColor: nodes.color,
-        }"
-      >
-        <template v-if="nodes.read_mode == false">
-          <textarea
-            @focus="editTrue(true)"
-            @blur="editTrue(false)"
-            v-model="nodes.node_text"
-            @input="editNode"
-            :id="nodes.node_id"
-            v-focus
-            ref="textentry"
-            placeholder="Type your thoughts and ideas here! (auto saved every keystroke)"
-          ></textarea>
-          <p class="info">*markdown supported &amp; autosaves</p>
-        </template>
-        <template v-else>
-          <p
-            class="readmode"
-            :id="nodes.node_id"
-            :inner-html.prop="nodes.node_text | marked"
-          ></p>
-        </template>
-
-        <div class="btn-row">
-          <SvgButton
-            buttonClass="nodes"
-            @click.prevent="deleteFlag(nodes.node_id), updateNodes()"
-          />
-          <SvgButton2
-            buttonClass="nodes"
-            @click.prevent="
-              readFlag(nodes.node_id, nodes.read_mode), updateNodes()
-            "
-          />
-          <v-swatches
-            v-model="color"
-            @input="chooseColor(color, nodes.node_id)"
-            :swatches="swatches"
-            :shapes="shapes"
-            show-border
-            show-fallback
-            fallback-input-type="color"
-          >
-            <SvgButton3 buttonClass="nodes" @click.prevent slot="trigger" />
-          </v-swatches>
-        </div>
-
-        <div class="allemoji">
-          <div
-            class="eachemoji"
-            v-for="(emojis, index) in configEmoji"
-            :key="index"
-          >
-            <template v-if="emojis.node_id == nodes.node_id">{{
-              emojis.emoji_text
-            }}</template>
-          </div>
-        </div>
-      </form>
-    </div>
-  </div>
-</template>
-
-<script>
-import { mapState } from 'vuex'
-import marked from 'marked'
-import SvgButton from '@/components/SvgButton'
-import SvgButton2 from '@/components/SvgButton2'
-import SvgButton3 from '@/components/SvgButton3'
-import VSwatches from 'vue-swatches'
-import 'vue-swatches/dist/vue-swatches.css'
-
-var readmode
-export default {
-  name: 'ListLayer',
-
-  props: {
-    added: Boolean,
-  },
-
-  data: function () {
-    return {
-      color: '#9bc2d8',
-      shapes: 'circles',
-      // swatches: [{ color: '#F493A7', showBorder: true }],
-      swatches: [
-        ['#EB5757', '#F2994A', '#F2C94C'],
-        ['#219653', '#27AE60', '#6FCF97'],
-        ['#2F80ED', '#2D9CDB', '#56CCF2'],
-        ['#9B51E0', '#BB6BD9', '#E9B7FC'],
-      ],
-      localreadmode: false,
-      myArray: null,
-      update: false,
-    }
-  },
-
-  filters: {
-    marked: marked,
-  },
-
-  computed: {
-    ...mapState({
-      myNodes: (state) => state.myNodes,
-      configPositions: (state) => state.configPositions,
-      configEmoji: (state) => state.configEmoji,
-      // toolmode: (state) => state.ui.mode,
-    }),
-
-    nodes_filtered: function () {
-      return this.myNodes.filter((nodes) => {
-        return nodes.deleted == false
-      })
-    },
-  },
-
-  mounted() {
-    setTimeout(this.loadData, 500)
-    const unwatch = this.$watch('nodes_filtered', (value) => {
-      this.$options.myArray = this.nodes_filtered
-      this.$forceUpdate()
-      // this.focusInput()
-      // ignore falsy values
-      if (!value) return
-
-      // stop watching when nodes_filtered[] is not empty
-      if (value && value.length) unwatch()
-
-      // process value here
-    })
-  },
-
-  watch: {
-    added: {
-      deep: true,
-
-      handler() {
-        setTimeout(this.loadData, 200)
-      },
-    },
-    update: {
-      deep: true,
-
-      handler() {
-        setTimeout(this.loadData, 200)
-      },
-    },
-  },
-
-  methods: {
-    chooseColor(color, nodeid) {
-      this.$store.dispatch('colorNode', { nodeid, color })
-      this.$options.myArray = this.nodes_filtered
-    },
-    updateNodes() {
-      this.update = !this.update
-    },
-    loadData() {
-      this.$options.myArray = this.nodes_filtered
-      this.$forceUpdate()
-    },
-    editNode(e) {
-      var nodeid = e.target.id
-      var nodetext = e.target.value
-      this.$store.dispatch('editNode', { nodeid, nodetext })
-    },
-
-    editTrue(e) {
-      this.$emit('edit-true', e)
-    },
-
-    deleteFlag(e) {
-      if (confirm('Confirm discard?')) {
-        this.$store.dispatch('deleteFlag', { e })
-      } else {
-        // nothing happens
-      }
-    },
-    readFlag(e, f) {
-      readmode = f
-      readmode = !readmode
-      this.$store.dispatch('readFlag', { e, readmode })
-
-      if (readmode == true) {
-        this.mode = 'Read'
-      } else {
-        this.mode = 'Edit'
-      }
-    },
-  },
-  components: {
-    SvgButton,
-    SvgButton2,
-    SvgButton3,
-    VSwatches,
-  },
-}
-</script>
-
-<style lang="css" scoped>
-.nodes {
-  width: 95%;
-  border: 2px dashed black;
-  background-color: rgb(155, 194, 216);
-  margin-top: 1em;
-  margin-left: 0.5em;
-}
-
-.readmode {
-  margin-top: 1em;
-  margin-left: 1em;
-}
-
-textarea {
-  width: 100%;
-  height: 175px;
-  resize: none;
-  box-sizing: border-box;
-  font-size: 18px;
-  font-family: 'Inter var', Helvetica, sans-serif;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-  border: none;
-  outline: none;
-  background-color: rgb(187, 227, 255);
-  scrollbar-color: yellow rgb(187, 227, 255);
-}
-.btn-row {
-  position: relative;
-  margin-bottom: 5px;
-  display: flex;
-  justify-content: center;
-  flex-wrap: wrap;
-  padding: 0 15px;
-  border-radius: 4px;
-}
-
-.allemoji {
-  font-size: 2em;
-  display: grid;
-  grid-template-columns: repeat(auto-fill, minmax(0, auto));
-
-  /* float: left; */
-}
-
-.eachemoji p {
-  margin: 0em;
-}
-
-@media only screen and (max-width: 600px) {
-  .readmode >>> a {
-    font-size: 2em;
-    word-break: break-all;
-    padding-right: 0.5em;
-  }
-}
-</style>
diff --git a/src/components/MyNodes.vue b/src/components/MyNodes.vue
index 983c9ce8725015f681d91910fae3101cd4fab45c..3a40b0b23da4acec7b91650663191f2e4078047e 100644
--- a/src/components/MyNodes.vue
+++ b/src/components/MyNodes.vue
@@ -1,27 +1,25 @@
 <template>
   <div v-for="(nodes, index) in myArray" :key="index">
     <form class="nodes">
-      <!-- <template v-if="nodes.node_readmode == false"> -->
-      <textarea
-        v-model="nodes.node_text"
-        @input="editNode"
-        :id="nodes.node_id"
-        ref="textentry"
-        placeholder="Type your thoughts and ideas here! (auto saved every keystroke)"
-        rows="5"
-      ></textarea>
-      <p class="info">*markdown supported &amp; autosaves</p>
-      <button>Colour</button>
-      <button>Read</button>
-      <button>Discard</button>
-      <!-- </template>
-      <template v-else>
-        <p
-          class="readmode"
+      <template v-if="nodes.read_mode == false">
+        <textarea
+          v-model="nodes.node_text"
+          @input="editNode"
           :id="nodes.node_id"
-          :inner-html.prop="nodes.node_text"
-        ></p>
-      </template> -->
+          ref="textentry"
+          placeholder="Type your thoughts and ideas here! (auto saved every keystroke)"
+          rows="5"
+        ></textarea>
+        <p class="info">*markdown supported &amp; autosaves</p>
+        <button>Colour</button>
+        <button>Shape</button>
+        <button @click.prevent="toggleMode(nodes.node_id)">Read</button>
+        <button @click.prevent="discardNode(nodes.node_id)">Discard</button>
+      </template>
+      <template v-else>
+        <p class="readmode" :id="nodes.node_id">{{ nodes.node_text }}</p>
+        <button @click.prevent="toggleMode(nodes.node_id)">Edit</button>
+      </template>
     </form>
   </div>
 </template>
@@ -54,14 +52,11 @@ export default {
   watch: {
     added: function () {
       setTimeout(this.loadData, 500)
-     
     },
   },
 
   mounted() {
-    //console.log('mounted')
     setTimeout(this.loadData, 500)
-
     if (localStorage.nogg_name && localStorage.nogg_microcosm) {
       var devicename = localStorage.nogg_name
       var microcosm = localStorage.nogg_microcosm
@@ -73,21 +68,12 @@ export default {
   },
 
   methods: {
-    emptyData() {
-      if (this.myNodes.myNodes == 0) {
-        /// that
-      } else {
-        // this
-      }
-    },
-
     loadData() {
       var nodesFiltered = this.myNodes.myNodes.filter(
         (nodes) => nodes.node_deleted == false
       )
       this.$store.dispatch('getMynodes')
       this.myArray = nodesFiltered.reverse()
-      // console.log(this.myArray.length)
     },
 
     editNode(e) {
@@ -95,6 +81,20 @@ export default {
       var nodetext = e.target.value
       this.$store.dispatch('editNode', { nodeid, nodetext })
     },
+
+    discardNode(e) {
+      if (confirm('Confirm discard?')) {
+        this.$store.dispatch('discardNode', { e })
+        setTimeout(this.loadData, 500)
+      } else {
+        // nothing happens
+      }
+    },
+
+    toggleMode(e) {
+      this.$store.dispatch('toggleMode', { e })
+      setTimeout(this.loadData, 500)
+    },
   },
 }
 </script>
diff --git a/src/store/modules/mynodes.js b/src/store/modules/mynodes.js
index b84eb3c56b187170fecd8ad76e797922fa623c18..e35ac46e7d3ea3cfd2c5ac5fc58df884573e873d 100644
--- a/src/store/modules/mynodes.js
+++ b/src/store/modules/mynodes.js
@@ -125,7 +125,6 @@ export const mutations = {
           {
             _id: deviceName,
             _rev: doc._rev,
-            _attachments: doc._attachments,
             nodes: state.myNodes,
           },
         ])
@@ -141,6 +140,99 @@ export const mutations = {
         }
       })
   },
+
+  DISCARD_NODE(state, e) {
+    var i
+    for (i = 0; i < Object.keys(state.myNodes).length; i++) {
+      if (e.e == state.myNodes[i].node_id) {
+        state.myNodes[i].node_deleted = true
+      }
+    }
+    pouchdb
+      .get(deviceName)
+      .then(function (doc) {
+        return pouchdb.bulkDocs([
+          {
+            _id: deviceName,
+            _rev: doc._rev,
+            nodes: state.myNodes,
+          },
+        ])
+      })
+      .then(function () {
+        return pouchdb.get(deviceName).then(function (doc) {
+          state.myNodes = doc.nodes
+        })
+      })
+      .catch(function (err) {
+        if (err.status == 404) {
+          // pouchdb.put({  })
+        }
+      })
+  },
+
+  RESTORE_NODE(state, e) {
+    var i
+    for (i = 0; i < Object.keys(state.myNodes).length; i++) {
+      if (e.e == state.myNodes[i].node_id) {
+        state.myNodes[i].node_deleted = false
+      }
+    }
+    pouchdb
+      .get(deviceName)
+      .then(function (doc) {
+        // put the store into pouchdb
+        return pouchdb.bulkDocs([
+          {
+            _id: deviceName,
+            _rev: doc._rev,
+            _attachments: doc._attachments,
+            nodes: state.myNodes,
+          },
+        ])
+      })
+      .then(function () {
+        return pouchdb.get(deviceName).then(function (doc) {
+          state.myNodes = doc.nodes
+        })
+      })
+      .catch(function () {})
+  },
+
+  TOGGLE_MODE(state, e) {
+    var i
+    for (i = 0; i < Object.keys(state.myNodes).length; i++) {
+      if (
+        e.e == state.myNodes[i].node_id &&
+        state.myNodes[i].read_mode == false
+      ) {
+        state.myNodes[i].read_mode = true
+      } else if (
+        e.e == state.myNodes[i].node_id &&
+        state.myNodes[i].read_mode == true
+      ) {
+        state.myNodes[i].read_mode = false
+      }
+    }
+    pouchdb
+      .get(deviceName)
+      .then(function (doc) {
+        // put the store into pouchdb
+        return pouchdb.bulkDocs([
+          {
+            _id: deviceName,
+            _rev: doc._rev,
+            nodes: state.myNodes,
+          },
+        ])
+      })
+      .then(function () {
+        return pouchdb.get(deviceName).then(function (doc) {
+          state.myNodes = doc.nodes
+        })
+      })
+      .catch(function () {})
+  },
 }
 
 export const actions = {
@@ -156,6 +248,18 @@ export const actions = {
     commit('EDIT_NODE', { nodeid, nodetext })
   },
 
+  discardNode: ({ commit }, e) => {
+    commit('DISCARD_NODE', e)
+  },
+
+  restoreNode: ({ commit }, e) => {
+    commit('RESTORE_NODE', e)
+  },
+
+  toggleMode: ({ commit }, e) => {
+    commit('TOGGLE_MODE', e)
+  },
+
   getMicrocosm(vuexContext) {
     deviceName = vuexContext.rootState.setup.deviceName
     // microcosmName = vuexContext.rootState.setup.microcosmName