diff --git a/src/Data/ListController.js b/src/Data/ListController.js
index <HASH>..<HASH> 100644
--- a/src/Data/ListController.js
+++ b/src/Data/ListController.js
@@ -1,14 +1,24 @@
 
 "use strict";
 
+let route;
+
 class ListController {
 
-    constructor(app, Module, $routeParams) {
+    constructor(app, Module, $routeParams, $route) {
         this.app = app;
+        route = $route;
         var elements = Module.retrieve(app);
         for (let name in elements) {
             this[name] = elements[name];
         }
+        var setup = {};
+        this.Meta.fieldsets.map(fieldset => {
+            if (fieldset.primary) {
+                fieldset.fields.map(field => setup[field] = undefined);
+            }
+        });
+        this.Model.$load(setup);
         this.items = [];
         this.page($routeParams);
     }
@@ -16,9 +26,20 @@ class ListController {
     page(params) {
         this.Service.list(params).success(items => this.items = items);
     }
+
+    create() {
+        this.Meta.$create(this.Model).success(() => {
+            this.form = false;
+            route.reload();
+        });
+    }
+
+    reset() {
+        this.Model.$load({});
+    }
 };
 
-ListController.$inject = ['app', 'Module', '$routeParams'];
+ListController.$inject = ['app', 'Module', '$routeParams', '$route'];
 
 export {ListController};
empty model needs setup; add create method