diff --git a/src/libs/models/simulation.js b/src/libs/models/simulation.js
index a445c28064b681a69f306c5c71ba49d89584467a..cf6ad41c09f860d573dc1a5867fb8930d7b761ac 100644
--- a/src/libs/models/simulation.js
+++ b/src/libs/models/simulation.js
@@ -19,38 +19,73 @@ let SimulationSchema = new Schema({
     failure_rate: Array,
     goals_care: Array,
     goals_inclusion: Array,
+    enrollments: Array,
 });
 
 SimulationSchema.methods.setTime = function (t) {
     t = parseInt(t, 10);
     if (!t || t > MAX_SIMULATION_TIME) {
         // Throw an error?
-        return;
+        return false;
     }
     this.time = t;
+    return true;
 };
 SimulationSchema.methods.setLocation = function (l) {
     // Should sanitize
     this.location = l;
+    return true;
 };
 SimulationSchema.methods.setFailureRate = function (fr) {
     // Should sanitize
     this.failure_rate = fr;
+    return true;
 };
 SimulationSchema.methods.setCareGoals = function (g) {
     // Should sanitize
     this.goals_care = g;
+    return true;
 };
 SimulationSchema.methods.setInclusionGoals = function (g) {
     // Should sanitize
     this.goals_inclusion = g;
+    return true;
 };
+SimulationSchema.methods.setEnrollments = function (e) {
+    e = JSON.parse(e);
+    for(let i=0; i<e.length; i++){
+        if(!(e[i] instanceof Array)){
+            return false;
+        }
+        if(e[i].length !== this.time){
+            return false;
+        }
+        for(let n of e[i])
+            if(!(n instanceof Number) && (n !== parseInt(n, 10))){
+                return false;
+            }
+    }
+    log.debug("rolou");
+    this.enrollments = e;
+
+    return true;
+}
 SimulationSchema.methods.update = function (property, value) {
-    if (property === 'time') this.setTime(value);
-    if (property === 'location') this.setLocation(value);
-    if (property === 'failure_rate') this.setFailureRate(value);
-    if (property === 'goals_care') this.setCareGoals(value);
-    if (property === 'goals_inclusion') this.setInclusionGoals(value);
+    let success = true;
+    if (property === 'time') {
+        if (!this.setTime(value)) success = false;
+    } else if (property === 'location') {
+        if (!this.setLocation(value)) success = false;
+    } else if (property === 'failure_rate') {
+        if (!this.setFailureRate(value)) success = false;
+    } else if (property === 'goals_care') {
+        if (!this.setCareGoals(value)) success = false;
+    } else if (property === 'goals_inclusion') {
+        if (!this.setInclusionGoals(value)) success = false;
+    } else if (property === 'enrollments') {
+        if (!this.setEnrollments(value)) success = false;
+    } else success = false;
+    return success;
 };
 
 SimulationSchema.methods.run = function () {
diff --git a/src/libs/routes/simulation.js b/src/libs/routes/simulation.js
index 961f6173315bf795ab490b50da79ed6898783839..ce1a2ff08f14e6bea32996cf317d2c9d1c90728e 100644
--- a/src/libs/routes/simulation.js
+++ b/src/libs/routes/simulation.js
@@ -85,7 +85,19 @@ simulationApp.post('/:id', (req, res, next) => {
 }, (req, res) => {
     for (let property in req.body) {
         if (Simulation.schema.tree.hasOwnProperty(property)) {
-            req.simulation.update(property, req.body[property]);
+            if(!req.simulation.update(property, req.body[property])){
+                res.send({
+                    success: false,
+                    msg: 'Invalid format for ' + property,
+                });
+                return ;
+            }
+        } else {
+            res.send({
+                success: false,
+                msg: 'Unknown property ' + property,
+            });
+            return ;
         }
     }
     req.simulation.save((err) => {
diff --git a/src/test/test.js b/src/test/test.js
index a5fc30a6b704d67cea513c543e6da73854e42053..d0763cbee01e49e10270462d6f956eb4d2ab927e 100644
--- a/src/test/test.js
+++ b/src/test/test.js
@@ -597,7 +597,32 @@ describe('Requires a simulation', () => {
                     done();
                 });
         });
-
     });
-
+    it('should include consistent enrollment tables', (done) => {
+        newSimulation = new Simulation();
+        newSimulation.name = 'test';
+        newSimulation.save((err, sim) => {
+            let id = sim._id;
+            chai.request(server)
+                .post(`/api/v1/simulation/${id}`)
+                .send({
+                    time: 5,
+                    enrollments: "[[100, 150, 200, 250, 300]]",
+                })
+                .end((err, res) => {
+                    res.should.have.status(200);
+                    res.should.be.json;
+                    res.body.should.have.property('id');
+                    res.body.id.should.be.a('string');
+                    Simulation.findById(res.body.id, (err, simulation) => {
+                        simulation.should.have.property('name');
+                        simulation.name.should.be.a('string');
+                        simulation.should.have.property('time');
+                        simulation.time.should.be.a('number');
+                        simulation.time.should.equal(5);
+                    });
+                    done();
+                });
+        });
+    });
 });