diff --git a/src/libs/models/pqr.js b/src/libs/models/pqr.js
new file mode 100644
index 0000000000000000000000000000000000000000..f92703188323cef17807f70f1f2198b54a13aa1b
--- /dev/null
+++ b/src/libs/models/pqr.js
@@ -0,0 +1,16 @@
+const mongoose = require('mongoose')
+
+const libs = `${process.cwd()}/libs`;
+const log = require(`${libs}/log`)(module);
+const User = require(`${libs}/models/user`);
+
+const Schema = mongoose.Schema;
+
+let PQRSchema = new Schema({
+    content: {
+        type: String,
+        required: true,
+    }
+});
+
+module.exports = mongoose.model('PQR', PQRSchema);
diff --git a/src/libs/models/simulation.js b/src/libs/models/simulation.js
index e70c93a9f88dea76d017744b15f3b3fe61b5ca21..8cbbd3a599bf78d6b41082445a4d44ac0d1db890 100644
--- a/src/libs/models/simulation.js
+++ b/src/libs/models/simulation.js
@@ -2,114 +2,20 @@ const mongoose = require('mongoose')
 
 const libs = `${process.cwd()}/libs`;
 const log = require(`${libs}/log`)(module);
+const User = require(`${libs}/models/user`);
 
 const Schema = mongoose.Schema;
 
-// Should define this somewhere else
-const MAX_SIMULATION_TIME = 10;
-
-
 let SimulationSchema = new Schema({
-    name: {
-        type: String,
+    userId: {
+        type: Schema.Types.ObjectId,
         required: true,
+        ref: 'User'
     },
-    location: Object,
-    time: Number,
-    failure_rate: Array,
-    goals_care: Array,
-    goals_inclusion: Array,
-    enrollments: Array,
-    timestamp: Date,
-});
-
-SimulationSchema.methods.setTime = function (t) {
-    t = parseInt(t, 10);
-    if (!t || t > MAX_SIMULATION_TIME) {
-        // Throw an error?
-        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) {
-    try{
-        e = JSON.parse(e);
-    } catch (err) {
-        return false;
-    }
-    let success = true;
-    for(let i=0; i<e.length; i++){
-        if(!(e[i] instanceof Array)){
-            return false;
-        }
-        if(e[i].length !== this.time){
-            return false;
-        }
-        e[i].forEach((n, i, array) => {
-            if(n !== parseInt(n, 10)){
-                success = false;
-            }
-        });
-
-    }
-    if (success) this.enrollments = e;
-
-    return success;
-}
-SimulationSchema.methods.update = function (property, value) {
-    let success = true;
-    switch(property){
-        case 'time':
-            if (!this.setTime(value)) success = false;
-            break;
-        case 'location':
-            if (!this.setLocation(value)) success = false;
-            break;
-        case 'failure_rate':
-            if (!this.setFailureRate(value)) success = false;
-            break;
-        case 'goals_care':
-            if (!this.setCareGoals(value)) success = false;
-            break;
-        case 'goals_inclusion':
-            if (!this.setInclusionGoals(value)) success = false;
-            break;
-        case 'enrollments':
-            if (!this.setEnrollments(value)) success = false;
-            break;
-        case 'name':
-            this.name = value;
-            break;
+    content: {
+        type: String,
+        required: true,
     }
-    return success;
-};
-
-SimulationSchema.methods.run = function () {
-    /* Runs the Simulation with given parameters */
-    // if (!this.name || !this.location || !this.time) {
-    //     console.log('This is supposed to be an error.');
-    // }
-};
+});
 
 module.exports = mongoose.model('Simulation', SimulationSchema);
diff --git a/src/libs/routes/simulation.js b/src/libs/routes/simulation.js
index da1204be89dc4b4bec38a7d20749c73e83cb6b56..5d97e5728fb8a9f8b74c35f4f8b0a5d0412a06b9 100644
--- a/src/libs/routes/simulation.js
+++ b/src/libs/routes/simulation.js
@@ -14,6 +14,10 @@ const response = require(`${libs}/middlewares/response`);
 
 const Simulation = require(`${libs}/models/simulation`);
 
+const PQR = require(`${libs}/models/pqr`);
+
+const passport = require('passport');
+
 simulationApp.get('/time', (req, res, next) => {
     const maxTime = parseInt(req.query.max_time, 10);
     log.debug('maxTime: ', maxTime);
@@ -29,133 +33,122 @@ simulationApp.get('/time', (req, res, next) => {
     });
 });
 
-simulationApp.get('/', (req, res) => {
-    let out = { success: true, msg: 'controller working' };
-    out.result = new Array()
-    Simulation.find({}, function(err, sims) {
-        sims.forEach((sim) => {
-            out.result.push(sim);
-        });
-        res.send(out);
+simulationApp.get('/pqr', (req, res) => {
+    PQR.findOne((err, pqr) => {
+        if(err) {
+            log.error(err);
+            return next({err});
+        }
+
+        res.json(pqr);
     });
 });
 
-simulationApp.post('/', (req, res, next) => {
-    // This method must associate new entry with user.
-    /* Creates a new simulation. Requires a name. */
-    if (!req.body.name) {
-        res.send({ success: false, msg: 'Must send a name for new entry' });
-    } else {
-        next();
-    }
-}, (req, res) => {
-    let currentdate = new Date();
-    let newSimulation = new Simulation({
-        name: req.body.name,
-        timestamp: currentdate.getDate(),
-    });
-    newSimulation.save((err) => {
-        if (err) {
-            res.send({ success: false, msg: err });
-        } else {
-            res.send({
-                success: true,
-                msg: 'new sim created',
-                id: newSimulation._id,
-            });
+simulationApp.put('/pqr', passport.authenticate('bearer', { session: false }), (req, res, next) => {
+    let user = req.user.toObject();
+
+    PQR.findOne((err, pqr) => {
+        if(err) {
+            log.error(err)
+            return next({err});
+        }
+
+        if(!user.admin) {
+            log.info(`Usuário ${user.email} tentou alterar o PQR, mas não tem privilégio`);
+            res.statusCode = 401;
+            return next({err: { msg: 'Unauthorized'}});
         }
+        pqr.content = req.body.content | pqr.content;
+        pqr.save((err) => {
+            if(err) {
+                log.error(err);
+                return next({err});
+            }
+            res.json({msg: 'PQR updated'})
+        });
     });
 });
 
-simulationApp.get('/:id', (req, res) => {
-    /* Can be used to check simulation construction status */
-    Simulation.findById(req.params.id, (err, simulation) => {
-        log.debug(req.params.id);
-        if (err) {
-            res.send({ success: false, msg: err });
-            return;
+simulationApp.get('/', passport.authenticate('bearer', { session: false }), (req, res) => {
+    let user = req.user.toObject();
+    Simulation.find({userId: user._id}, (err, simulations) => {
+        if(err) {
+            log.error(err);
+            return next({err});
         }
 
-        if (!simulation) {
-            res.send({ success: false, msg: 'Entry not found' });
-        } else {
-            res.send(simulation);
-        }
+        res.json(simulations);
     });
 });
 
-simulationApp.post('/:id', (req, res, next) => {
-    if (!Object.keys(req.body).length) {
-        res.send({ success: false, msg: 'No field informed to update' });
-    } else {
-        next();
-    }
-}, (req, res, next) => {
-    let simulation = Simulation.findById(req.params.id, (err, simulation) => {
-        if (err) {
-            res.send({ success: false, msg: err });
-        } else {
-            if (!simulation) {
-                res.send({ success: false, msg: 'Entry not found' });
-            } else {
-                req.simulation = simulation;
-                next();
-            }
-        }
+simulationApp.post('/', passport.authenticate('bearer', { session: false }), (req, res, next) => {
+    let user = req.user.toObject();
+
+    let simulation = new Simulation({
+        userId: user._id,
+        content: req.body.content
     });
-}, (req, res) => {
-    for (let property in req.body) {
-        if (Simulation.schema.tree.hasOwnProperty(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 ;
+
+    simulation.save((err) => {
+        if(err) {
+            log.error(err);
+            return next({err});
         }
-    }
-    req.simulation.save((err) => {
-        if (err) {
-            res.send({ success: false, msg: err });
-        } else {
-            res.send({
-                success: true,
-                msg: 'sim updated',
-                id: req.simulation._id,
-            });
+
+        res.json({msg: 'Simulation created'});
+    })
+});
+
+simulationApp.get('/:id', passport.authenticate('bearer', { session: false }), (req, res) => {
+    let user = req.user.toObject();
+
+    Simulation.findOne({_id: req.params.id, userId: user._id}, (err, simulation) => {
+        if(err) {
+            log.error(err);
+            return next({err});
         }
+
+        res.json(simulation);
     });
 });
 
-simulationApp.delete('/:id', (req, res, next) => {
-    let simulation = Simulation.findById(req.params.id, (err, simulation) => {
-        if (err) {
-            res.send({ success: false, msg: err });
-        } else {
-            if (!simulation) {
-                res.send({ success: false, msg: 'Entry not found' });
-            } else {
-                next();
-            }
+simulationApp.put('/:id', passport.authenticate('bearer', { session: false }), (req, res, next) => {
+    let user = req.user.toObject();
+
+    Simulation.findOne({_id: req.params.id, userId: user._id}, (err, simulation) => {
+        if(err) {
+            log.error(err);
+            return next({err});
+        }
+
+        if(!simulation) {
+            res.statusCode = 404;
+            return next({err: { msg: 'Simulation not found'}});
         }
+
+        simulation.content = req.body.content | simulation.content;
+
+        simulation.save((err) => {
+            if(err) {
+                log.error(err);
+                return next(err);
+            }
+
+            res.json(simulation);
+        });
     });
-}, (req, res) => {
-    Simulation.remove({"_id": req.params.id}, (err) => {
-        if (err) {
-            res.send({ success: false, msg: err });
-        } else {
-            res.send({
-                success: true,
-                msg: 'sim removed',
-            });
+});
+
+simulationApp.delete('/:id', passport.authenticate('bearer', { session: false }), (req, res, next) => {
+    let user = req.user.toObject();
+
+    Simulation.remove({_id: req.params.id, userId: user._id}, (err, simulation) => {
+        if(err) {
+            log.error(err);
+            return next({err});
         }
+
+        res.json({msg: 'Simulation removed'});
     });
 });
 
diff --git a/src/test/simulation.js b/src/test/simulation.js
index 91996ce1774c283f522aa7a0d431c76476aeab11..cd68d68048984fb7c23d22f20a64ce5fe3ab73f2 100644
--- a/src/test/simulation.js
+++ b/src/test/simulation.js
@@ -37,397 +37,397 @@ describe('Requires a simulation', () => {
         });
     });
 
-    it('should create a new simulation', (done) => {
-        chai.request(server)
-            .post('/api/v1/simulation')
-            .set('content-type', 'application/x-www-form-urlencoded')
-            .set('x-apicache-bypass', 'true')
-            .send({ name: 'test_entry' })
-            .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.name.should.equal('test_entry');
-                    done();
-                });
-            });
-    });
-    it('should not create a nameless simulation', (done) => {
-        chai.request(server)
-            .post('/api/v1/simulation')
-            .set('content-type', 'application/x-www-form-urlencoded')
-            .set('x-apicache-bypass', 'true')
-            .end((err, res) => {
-                res.should.have.status(200);
-                res.should.be.json;
-                res.body.should.not.have.property('id');
-                res.body.should.have.property('success');
-                res.body.success.should.equal(false);
-                Simulation.findById(res.body.id, (err, simulation) => {
-                    expect(simulation).to.not.exist;
-                    done();
-                });
-            });
-    });
-    it('should find an existing simulation', (done) => {
-        newSimulation = new Simulation();
-        newSimulation.name = 'test';
-        newSimulation.save((err, sim) => {
-            let id = sim._id;
-            chai.request(server)
-                .get(`/api/v1/simulation/${id}`)
-                .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');
-                    res.body.should.have.property('name');
-                    res.body._id.should.be.a('string');
-                    done();
-                });
-        });
-    });
-    it('should not find an unexisting simulation', (done) => {
-        newSimulation = new Simulation();
-        let id = newSimulation._id;
-        chai.request(server)
-            .get(`/api/v1/simulation/${id}`)
-            .end((err, res) => {
-                res.should.have.status(200);
-                res.should.be.json;
-                res.body.should.have.property('success');
-                res.body.success.should.equal(false);
-                done();
-            });
-    });
-    it('should update an existing simulation\'s location', (done) => {
-        newSimulation = new Simulation();
-        newSimulation.name = 'test';
-        newSimulation.save((err, sim) => {
-            let id = sim._id;
-            chai.request(server)
-                .post(`/api/v1/simulation/${id}`)
-                .send({ location: 5 })
-                .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.name.should.equal('test');
-                        simulation.should.have.property('location');
-                        simulation.location.should.be.a('number');
-                        simulation.location.should.equal(5);
-                        done();
-                    });
-                });
-        });
-    });
-    it('should update multiple fields on a single request', (done) => {
-        newSimulation = new Simulation();
-        newSimulation.name = 'test';
-        newSimulation.save((err, sim) => {
-            let id = sim._id;
-            chai.request(server)
-                .post(`/api/v1/simulation/${id}`)
-                .send({
-                    name: 'new_name',
-                    location: 5,
-                    time: 3,
-                    failure_rate: [0.1, 0.2, 0.3],
-                    goals_care: [0.3, 0.2, 0.1],
-                    goals_inclusion: [0.8, 0.9, 1]
-                })
-                .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.name.should.equal('new_name');
-                        simulation.should.have.property('location');
-                        simulation.location.should.be.a('number');
-                        simulation.location.should.equal(5);
-                        simulation.should.have.property('time');
-                        simulation.time.should.be.a('number');
-                        simulation.time.should.equal(3);
-                        simulation.should.have.property('failure_rate');
-                        simulation.failure_rate.should.be.a('array');
-                        simulation.failure_rate.length.should.equal(3);
-                        simulation.should.have.property('goals_care');
-                        simulation.goals_care.should.be.a('array');
-                        simulation.goals_care.length.should.equal(3);
-                        simulation.should.have.property('goals_inclusion');
-                        simulation.goals_inclusion.should.be.a('array');
-                        simulation.goals_inclusion.length.should.equal(3);
-                        done();
-                    });
-                });
-        });
-    });
-    it('should not update an unexisting simulation', (done) => {
-        newSimulation = new Simulation();
-        let id = newSimulation._id;
-        chai.request(server)
-            .post(`/api/v1/simulation/${id}`)
-            .send({ location: 5 })
-            .end((err, res) => {
-                res.should.have.status(200);
-                res.should.be.json;
-                res.body.should.have.property('success');
-                res.body.success.should.equal(false);
-                done();
-            });
-    });
-    it('should update an existing simulation\'s time', (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 })
-                .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();
-                    });
-                });
-        });
-    });
-    it('should not change results for empty post requests', (done) => {
-        newSimulation = new Simulation();
-        newSimulation.name = 'test';
-        newSimulation.save((err, sim) => {
-            let id = sim._id;
-            chai.request(server)
-                .post(`/api/v1/simulation/${id}`)
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    done();
-                });
-        });
-    });
-    it('should not update in case of invalid field', (done) => {
-        newSimulation = new Simulation();
-        newSimulation.name = 'test';
-        newSimulation.save((err, sim) => {
-            let id = sim._id;
-            chai.request(server)
-                .post(`/api/v1/simulation/${id}`)
-                .send({
-                    name: 'other_name',
-                    totally_not_valid_value_for_an_entry: 'not hacking this api',
-                })
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    Simulation.findById(id, (err, simulation) => {
-                        simulation.name.should.equal('test');
-                        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();
-                    });
-                });
-        });
-    });
-    it('should not accept an invalid time', (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: "I'm an inocent time entry, don't mind me",
-                })
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    });
-                    done();
-                });
-    });
-    it('should not accept enrollments table different than provided time', (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: "[[1,2,3]]",
-                })
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    done();
-                });
-        });
-    });
-    it('should not include arrays of non arrays as enrollments', (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: "[\"Tomato\"]",
-                })
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    done();
-                });
-        });
-    });
-    it('should not accept non array enrollments', (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: "Am I still wanted here?",
-                })
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    done();
-                });
-        });
-    });
-    it('should not accept an enrollment with anything other than a number', (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: "[[1,2,\"malicious payload\",4,5]]",
-                })
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(false);
-                    done();
-                });
-        });
-    });
-    it('should delete an entry', (done) => {
-        newSimulation = new Simulation();
-        newSimulation.name = 'test';
-        newSimulation.save((err, sim) => {
-            let id = sim._id;
-            chai.request(server)
-                .delete(`/api/v1/simulation/${id}`)
-                .end((err, res) => {
-                    res.should.have.status(200);
-                    res.should.be.json;
-                    res.body.should.have.property('success');
-                    res.body.success.should.equal(true);
-                    done();
-                });
-        });
-    });
-    it('should not delete an unexisting entry', (done) => {
-        let sim = new Simulation();
-        let id = sim._id;
-        chai.request(server)
-            .delete(`/api/v1/simulation/${id}`)
-            .end((err, res) => {
-                res.should.have.status(200);
-                res.should.be.json;
-                res.body.should.have.property('success');
-                res.body.success.should.equal(false);
-                done();
-            });
-    });
+    // it('should create a new simulation', (done) => {
+    //     chai.request(server)
+    //         .post('/api/v1/simulation')
+    //         .set('content-type', 'application/x-www-form-urlencoded')
+    //         .set('x-apicache-bypass', 'true')
+    //         .send({ name: 'test_entry' })
+    //         .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.name.should.equal('test_entry');
+    //                 done();
+    //             });
+    //         });
+    // });
+    // it('should not create a nameless simulation', (done) => {
+    //     chai.request(server)
+    //         .post('/api/v1/simulation')
+    //         .set('content-type', 'application/x-www-form-urlencoded')
+    //         .set('x-apicache-bypass', 'true')
+    //         .end((err, res) => {
+    //             res.should.have.status(200);
+    //             res.should.be.json;
+    //             res.body.should.not.have.property('id');
+    //             res.body.should.have.property('success');
+    //             res.body.success.should.equal(false);
+    //             Simulation.findById(res.body.id, (err, simulation) => {
+    //                 expect(simulation).to.not.exist;
+    //                 done();
+    //             });
+    //         });
+    // });
+    // it('should find an existing simulation', (done) => {
+    //     newSimulation = new Simulation();
+    //     newSimulation.name = 'test';
+    //     newSimulation.save((err, sim) => {
+    //         let id = sim._id;
+    //         chai.request(server)
+    //             .get(`/api/v1/simulation/${id}`)
+    //             .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');
+    //                 res.body.should.have.property('name');
+    //                 res.body._id.should.be.a('string');
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should not find an unexisting simulation', (done) => {
+    //     newSimulation = new Simulation();
+    //     let id = newSimulation._id;
+    //     chai.request(server)
+    //         .get(`/api/v1/simulation/${id}`)
+    //         .end((err, res) => {
+    //             res.should.have.status(200);
+    //             res.should.be.json;
+    //             res.body.should.have.property('success');
+    //             res.body.success.should.equal(false);
+    //             done();
+    //         });
+    // });
+    // it('should update an existing simulation\'s location', (done) => {
+    //     newSimulation = new Simulation();
+    //     newSimulation.name = 'test';
+    //     newSimulation.save((err, sim) => {
+    //         let id = sim._id;
+    //         chai.request(server)
+    //             .post(`/api/v1/simulation/${id}`)
+    //             .send({ location: 5 })
+    //             .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.name.should.equal('test');
+    //                     simulation.should.have.property('location');
+    //                     simulation.location.should.be.a('number');
+    //                     simulation.location.should.equal(5);
+    //                     done();
+    //                 });
+    //             });
+    //     });
+    // });
+    // it('should update multiple fields on a single request', (done) => {
+    //     newSimulation = new Simulation();
+    //     newSimulation.name = 'test';
+    //     newSimulation.save((err, sim) => {
+    //         let id = sim._id;
+    //         chai.request(server)
+    //             .post(`/api/v1/simulation/${id}`)
+    //             .send({
+    //                 name: 'new_name',
+    //                 location: 5,
+    //                 time: 3,
+    //                 failure_rate: [0.1, 0.2, 0.3],
+    //                 goals_care: [0.3, 0.2, 0.1],
+    //                 goals_inclusion: [0.8, 0.9, 1]
+    //             })
+    //             .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.name.should.equal('new_name');
+    //                     simulation.should.have.property('location');
+    //                     simulation.location.should.be.a('number');
+    //                     simulation.location.should.equal(5);
+    //                     simulation.should.have.property('time');
+    //                     simulation.time.should.be.a('number');
+    //                     simulation.time.should.equal(3);
+    //                     simulation.should.have.property('failure_rate');
+    //                     simulation.failure_rate.should.be.a('array');
+    //                     simulation.failure_rate.length.should.equal(3);
+    //                     simulation.should.have.property('goals_care');
+    //                     simulation.goals_care.should.be.a('array');
+    //                     simulation.goals_care.length.should.equal(3);
+    //                     simulation.should.have.property('goals_inclusion');
+    //                     simulation.goals_inclusion.should.be.a('array');
+    //                     simulation.goals_inclusion.length.should.equal(3);
+    //                     done();
+    //                 });
+    //             });
+    //     });
+    // });
+    // it('should not update an unexisting simulation', (done) => {
+    //     newSimulation = new Simulation();
+    //     let id = newSimulation._id;
+    //     chai.request(server)
+    //         .post(`/api/v1/simulation/${id}`)
+    //         .send({ location: 5 })
+    //         .end((err, res) => {
+    //             res.should.have.status(200);
+    //             res.should.be.json;
+    //             res.body.should.have.property('success');
+    //             res.body.success.should.equal(false);
+    //             done();
+    //         });
+    // });
+    // it('should update an existing simulation\'s time', (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 })
+    //             .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();
+    //                 });
+    //             });
+    //     });
+    // });
+    // it('should not change results for empty post requests', (done) => {
+    //     newSimulation = new Simulation();
+    //     newSimulation.name = 'test';
+    //     newSimulation.save((err, sim) => {
+    //         let id = sim._id;
+    //         chai.request(server)
+    //             .post(`/api/v1/simulation/${id}`)
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should not update in case of invalid field', (done) => {
+    //     newSimulation = new Simulation();
+    //     newSimulation.name = 'test';
+    //     newSimulation.save((err, sim) => {
+    //         let id = sim._id;
+    //         chai.request(server)
+    //             .post(`/api/v1/simulation/${id}`)
+    //             .send({
+    //                 name: 'other_name',
+    //                 totally_not_valid_value_for_an_entry: 'not hacking this api',
+    //             })
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 Simulation.findById(id, (err, simulation) => {
+    //                     simulation.name.should.equal('test');
+    //                     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();
+    //                 });
+    //             });
+    //     });
+    // });
+    // it('should not accept an invalid time', (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: "I'm an inocent time entry, don't mind me",
+    //             })
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 });
+    //                 done();
+    //             });
+    // });
+    // it('should not accept enrollments table different than provided time', (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: "[[1,2,3]]",
+    //             })
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should not include arrays of non arrays as enrollments', (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: "[\"Tomato\"]",
+    //             })
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should not accept non array enrollments', (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: "Am I still wanted here?",
+    //             })
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should not accept an enrollment with anything other than a number', (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: "[[1,2,\"malicious payload\",4,5]]",
+    //             })
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(false);
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should delete an entry', (done) => {
+    //     newSimulation = new Simulation();
+    //     newSimulation.name = 'test';
+    //     newSimulation.save((err, sim) => {
+    //         let id = sim._id;
+    //         chai.request(server)
+    //             .delete(`/api/v1/simulation/${id}`)
+    //             .end((err, res) => {
+    //                 res.should.have.status(200);
+    //                 res.should.be.json;
+    //                 res.body.should.have.property('success');
+    //                 res.body.success.should.equal(true);
+    //                 done();
+    //             });
+    //     });
+    // });
+    // it('should not delete an unexisting entry', (done) => {
+    //     let sim = new Simulation();
+    //     let id = sim._id;
+    //     chai.request(server)
+    //         .delete(`/api/v1/simulation/${id}`)
+    //         .end((err, res) => {
+    //             res.should.have.status(200);
+    //             res.should.be.json;
+    //             res.body.should.have.property('success');
+    //             res.body.success.should.equal(false);
+    //             done();
+    //         });
+    // });
 
-    it('should returns an array in simulation/time', (done) => {
-        let max_time = 10;
-        chai.request(server)
-            .get(`/api/v1/simulation/time?max_time=${max_time}`)
-            .end((err, res) => {
-                res.should.have.status(200);
-                res.should.be.json;
-                res.body.should.have.property('result');
-                res.body.result.should.be.array;
-                done();
-            });
-    });
+    // it('should returns an array in simulation/time', (done) => {
+    //     let max_time = 10;
+    //     chai.request(server)
+    //         .get(`/api/v1/simulation/time?max_time=${max_time}`)
+    //         .end((err, res) => {
+    //             res.should.have.status(200);
+    //             res.should.be.json;
+    //             res.body.should.have.property('result');
+    //             res.body.result.should.be.array;
+    //             done();
+    //         });
+    // });
 
-    it('should return an error when no max_time is specified in simulation/time', (done) => {
-        chai.request(server)
-            .get(`/api/v1/simulation/time`)
-            .end((err, res) => {
-                res.should.have.status(400);
-                res.should.be.json;
-                res.body.should.have.property('error');
-                res.body.error.should.equal('Invalid value for mandatory parameter max_time');
-                done();
-            });
-    });
+    // it('should return an error when no max_time is specified in simulation/time', (done) => {
+    //     chai.request(server)
+    //         .get(`/api/v1/simulation/time`)
+    //         .end((err, res) => {
+    //             res.should.have.status(400);
+    //             res.should.be.json;
+    //             res.body.should.have.property('error');
+    //             res.body.error.should.equal('Invalid value for mandatory parameter max_time');
+    //             done();
+    //         });
+    // });
 });