diff --git a/app/services/changelog-parser.js b/app/services/changelog-parser.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d40da463ed277613404a75a1a1398fc552a03c0
--- /dev/null
+++ b/app/services/changelog-parser.js
@@ -0,0 +1,15 @@
+import Ember from 'ember';
+
+export default Ember.Service.extend({
+    store: Ember.inject.service(),
+    parse(changelog) {
+        this.debug('store', this.get('store'));
+        this.debug('parsing changelog', changelog);
+        const data = changelog.data;
+        const store = this.get('store');
+        const normalized = store.normalize('node', data); // using application serializer
+
+        this.debug('normalized', normalized);
+        store.push(normalized);
+    }
+});
\ No newline at end of file
diff --git a/app/services/changelog-stream.js b/app/services/changelog-stream.js
index 0d97072c537b402d545660e531bab2234a8c02d9..fb10d45ccf21223801acc485a821b0454d46221f 100644
--- a/app/services/changelog-stream.js
+++ b/app/services/changelog-stream.js
@@ -2,6 +2,7 @@ import Ember from 'ember';
 
 export default Ember.Service.extend({
     shouldClose: false,
+    changelogParser: Ember.inject.service(),
     init() {
         this._super(...arguments);
         this.debug('session', this.get('systemId'));
@@ -51,7 +52,7 @@ export default Ember.Service.extend({
             this.debug('new changelog received', changelogJson);
             try {
                 const changelog = JSON.parse(changelogJson);
-                this.debug('changelog converted', changelog);
+                this.get('changelogParser').parse(changelog);
             } catch (e) {
                 console.error('could not parse changelog json', e, changelogJson);
             }