diff --git a/src/app/datasources/stores/model.store.ts b/src/app/datasources/stores/model.store.ts
new file mode 100644
index 0000000..f31d571
--- /dev/null
+++ b/src/app/datasources/stores/model.store.ts
@@ -0,0 +1,44 @@
+/// <reference path="../../../../typings/index.d.ts"/>
+
+import {BehaviorSubject, Observable} from 'rxjs/Rx';
+import {IWSEvent, IWSEventService} from '../websocket/global';
+import {IXosResourceService} from '../rest/model.rest';
+import {IStoreHelpersService} from '../helpers/store.helpers';
+
+export interface  IModelStoreService {
+  query(model: string): Observable<any>;
+}
+
+export class ModelStore {
+  static $inject = ['WebSocket', 'StoreHelpers', 'ModelRest'];
+  private _slices: BehaviorSubject<any[]> = new BehaviorSubject([]);
+  constructor(
+    private webSocket: IWSEventService,
+    private storeHelpers: IStoreHelpersService,
+    private sliceService: IXosResourceService
+  ) {
+  }
+
+  query(model: string) {
+    this.loadInitialData(model);
+    this.webSocket.list()
+      .filter((e: IWSEvent) => e.model === model)
+      .subscribe(
+        (event: IWSEvent) => {
+          this.storeHelpers.updateCollection(event, this._slices);
+        }
+      );
+    return this._slices.asObservable();
+  }
+
+  private loadInitialData(model: string) {
+    const endpoint = `/core/${model.toLowerCase()}s/`;
+    this.sliceService.getResource(endpoint).query().$promise
+      .then(
+        res => {
+          this._slices.next(res);
+        },
+        err => console.log(`Error retrieving ${model}`, err)
+      );
+  }
+}
diff --git a/src/app/datasources/stores/slices.store.ts b/src/app/datasources/stores/slices.store.ts
deleted file mode 100644
index 9c3389f..0000000
--- a/src/app/datasources/stores/slices.store.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/// <reference path="../../../../typings/index.d.ts"/>
-
-import {BehaviorSubject, Observable} from 'rxjs/Rx';
-import {IWSEvent, IWSEventService} from '../websocket/global';
-import {IXosResourceService} from '../rest/slices.rest';
-import {IStoreHelpersService} from '../helpers/store.helpers';
-
-export interface  IStoreService {
-  query(): Observable<any>;
-}
-
-export class SliceStore {
-  static $inject = ['WebSocket', 'StoreHelpers', 'SlicesRest'];
-  private _slices: BehaviorSubject<any[]> = new BehaviorSubject([]);
-  constructor(
-    private webSocket: IWSEventService,
-    private storeHelpers: IStoreHelpersService,
-    private sliceService: IXosResourceService
-  ) {
-    this.loadInitialData();
-    this.webSocket.list()
-      .filter((e: IWSEvent) => e.model === 'Slice')
-      .subscribe(
-        (event: IWSEvent) => {
-          this.storeHelpers.updateCollection(event, this._slices);
-        }
-      );
-  }
-
-  query() {
-    return this._slices.asObservable();
-  }
-
-  private loadInitialData() {
-    this.sliceService.getResource().query().$promise
-      .then(
-        res => {
-          this._slices.next(res);
-        },
-        err => console.log('Error retrieving Slices', err)
-      );
-  }
-}
diff --git a/src/app/datasources/stores/synchronizer.store.ts b/src/app/datasources/stores/synchronizer.store.ts
index 598d23c..33a0c39 100644
--- a/src/app/datasources/stores/synchronizer.store.ts
+++ b/src/app/datasources/stores/synchronizer.store.ts
@@ -1,8 +1,12 @@
 /// <reference path="../../../../typings/index.d.ts"/>
 
-import {Subject} from 'rxjs/Rx';
+import {Subject, Observable} from 'rxjs/Rx';
 import {IWSEvent, IWSEventService} from '../websocket/global';
 
+export interface  IStoreService {
+  query(): Observable<any>;
+}
+
 export class SynchronizerStore {
   static $inject = ['WebSocket'];
   private _notifications: Subject<IWSEvent> = new Subject();
