diff --git a/app/components/SimpleEditor/Editor.js b/app/components/SimpleEditor/Editor.js
index 3e2d315e7be96d467ce71c5e5b874a878222e2f1..07adbf69fd5aa587c0d5445e30b7c32639479e3d 100644
--- a/app/components/SimpleEditor/Editor.js
+++ b/app/components/SimpleEditor/Editor.js
@@ -35,6 +35,7 @@ class Editor extends ProseEditor {
     this.props.updateTrackChangesStatus(!this.props.trackChanges)
 
     this.extendState({ trackChanges: !this.props.trackChanges })
+    console.log(this.el)
   }
 
   updateTrackChangeView () {
@@ -107,7 +108,7 @@ class Editor extends ProseEditor {
           contentPanelWithSplitPane
         )
     )
-
+    if (this.props.trackChanges || this.state.trackChangesView) el.addClass('track-changes-mode')
     return el
   }
 
diff --git a/app/components/SimpleEditor/SimpleEditor.scss b/app/components/SimpleEditor/SimpleEditor.scss
index 22dcb38ccac84a474d9b47f496e9b341fedf20b3..7dfb242d3d426f8e856d9e2a88ad068cb4ef5b37 100644
--- a/app/components/SimpleEditor/SimpleEditor.scss
+++ b/app/components/SimpleEditor/SimpleEditor.scss
@@ -38,6 +38,12 @@ $white: #fff;
       top: 10px;
     }
   }
+
+  .track-changes-mode {
+    .se-content {
+      line-height: 38px;
+    }
+  }
 }
 
 .sc-prose-editor {
@@ -183,7 +189,6 @@ $white: #fff;
   .se-content {
     color: $transparent-black;
     font-family: 'Fira Sans';
-    line-height: 38px;
     word-wrap: break-word;
 
     ::selection {
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
index e17ed6c2fbe61fa4658e34953a662bf3f87628ff..c9ef672c744d68c6b070d882db9b4f4676d09c8a 100644
--- a/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeComponent.js
@@ -7,7 +7,7 @@ class TrackChangeComponent extends AnnotationComponent {
     const trackChangesView = this.toggleTrackChangeView()
     let hideDeletes = ''
     let ShowAdditions = ''
-    // console.log('trackChangesView', trackChangesView)
+
     if (trackChangesView === false && status === 'delete') {
       hideDeletes = 'sc-track-delete-hide'
     }
@@ -45,6 +45,7 @@ class TrackChangeComponent extends AnnotationComponent {
     return el
   }
 
+// TODO Move most of the funcs into provider
   getSurface () {
     const surfaceManager = this.context.surfaceManager
     const containerId = this.context.controller.props.containerId
@@ -62,9 +63,38 @@ class TrackChangeComponent extends AnnotationComponent {
   acceptTrackChange () {
     const nodeId = this.props.node.id
     const status = this.props.node.status
-    console.log('accept track change', status)
+    const ds = this.getDocumentSession()
+    const doc = ds.getDocument()
+    const nodeData = this.buildNodeData()
 
-    const ds = this.context.documentSession
+    var self = this
+
+    ds.transaction(function (tx, args) {
+      if (status === 'add') createAnnotation(doc, nodeData)
+      deleteNode(tx, { nodeId: nodeId })
+      if (status === 'delete') self.context.surface.delete(tx, nodeData)
+    })
+  }
+
+  rejectTrackChange () {
+    const nodeId = this.props.node.id
+    const status = this.props.node.status
+    const ds = this.getDocumentSession()
+    const doc = ds.getDocument()
+    const nodeData = this.buildNodeData()
+
+    var self = this
+
+    ds.transaction(function (tx, args) {
+      if (status === 'delete') createAnnotation(doc, nodeData)
+      deleteNode(tx, { nodeId: nodeId })
+      if (status === 'add') self.context.surface.delete(tx, nodeData)
+    })
+  }
+
+  buildNodeData () {
+    const nodeId = this.props.node.id
+    const ds = this.getDocumentSession()
     const doc = ds.getDocument()
     const trackChangeNode = doc.get(nodeId)
 
@@ -74,19 +104,14 @@ class TrackChangeComponent extends AnnotationComponent {
 
     const sel = ds.createSelection(path, startOffset, endOffset)
 
-    const nodeData = {
+    return {
       selection: sel,
       node: { type: 'paragraph' }
     }
-
-    ds.transaction(function (tx, args) {
-      createAnnotation(doc, nodeData)
-      deleteNode(tx, { nodeId: nodeId })
-    })
   }
 
-  rejectTrackChange () {
-    console.log('reject track change')
+  getDocumentSession () {
+    return this.context.documentSession
   }
 
 }
diff --git a/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewCommand.js b/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewCommand.js
index 1eb570f61368dbad3ac9d306cec7a289063eb459..fa0d4cc8c338ef9479a42bfb69e8f53569045b4d 100644
--- a/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewCommand.js
+++ b/app/components/SimpleEditor/elements/track_change/TrackChangeControlViewCommand.js
@@ -13,7 +13,8 @@ class TrackChangeControlViewCommand extends Command {
   execute (params, context) {
     const surface = context.surfaceManager.getSurface('body')
     surface.send('trackChangesViewUpdate')
-    return true
+    surface.selectAll()
+    surface.selectFirst()
   }
 }
 
diff --git a/app/components/SimpleEditor/elements/track_change/trackChange.scss b/app/components/SimpleEditor/elements/track_change/trackChange.scss
index 40d3957b02e6f316e42afd02ceb1f41136060692..1b7b897fc0e64cc03ac951e0dbbb60a7ec603d2b 100644
--- a/app/components/SimpleEditor/elements/track_change/trackChange.scss
+++ b/app/components/SimpleEditor/elements/track_change/trackChange.scss
@@ -1,9 +1,7 @@
-.sc-track-change {
-  // background-color: #f7f70c;
-}
+$blue: blue;
 
 .sc-track-change-add {
-  color: blue;
+  color: $blue;
   text-decoration: none;
 }
 
@@ -16,7 +14,11 @@
 }
 
 .sc-track-add-show {
-  background: transparent !important;
+  color: inherit !important;
+
+  .sc-accept-reject-container {
+    display: none;
+  }
 }
 
 .sc-accept-reject-container {
@@ -27,11 +29,12 @@
   position: absolute;
 
   .sc-track-item {
+    color: $blue;
     cursor: pointer;
-    color: blue;
   }
+
   .sc-track-separator {
-    color: blue;
+    color: $blue;
   }
 
 }