diff --git a/models/file.js b/models/file.js
index fcbf447896595db6259094f498dcd6c9b656760f..949d83b3ec0010af5ae43335a9ba32e7b655e2c5 100644
--- a/models/file.js
+++ b/models/file.js
@@ -33,6 +33,6 @@ var fileSchema = new Schema({
   dimensions: { type: Schema.Types.Mixed },
   user: { type: Schema.Types.ObjectId, ref: 'User', required: true },
   date: { type: Date, default: Date.now }
-});
+}, { versionKey: false });
 
 module.exports = mongoose.model('File', fileSchema);
diff --git a/models/node.js b/models/node.js
index 340aa107a832e6da41ed6fb55885c7abcd1eadd0..990fc713b1f228fc0d2cfa581f7734865fa27817 100644
--- a/models/node.js
+++ b/models/node.js
@@ -33,7 +33,7 @@ var nodeSchema = new Schema({
   endpoint: { type: String, required: true, unique: true },
   config: { type: Schema.Types.Mixed, default: {} },
   simulators: [{ type: Schema.Types.Mixed, default: [] }]
-});
+}, { versionKey: false });
 
 nodeSchema.post('save', function() {
   // remove old file
diff --git a/models/project.js b/models/project.js
index 4499282d01b0311c78802e787868dc574308dbf8..f75e490763d22c3ba91289cd19bcd6575c48cf76 100644
--- a/models/project.js
+++ b/models/project.js
@@ -33,7 +33,7 @@ var projectSchema = new Schema({
   user: { type: Schema.Types.ObjectId, ref: 'User', required: true },
   visualizations: [{ type: Schema.Types.ObjectId, ref: 'Visualization', default: [] }],
   simulation: { type: Schema.Types.ObjectId, ref: 'Simulation', required: true }
-});
+}, { versionKey: false });
 
 projectSchema.pre('remove', function(callback) {
   // delete all visualizations belonging to this project
diff --git a/models/simulation.js b/models/simulation.js
index 88b353293fa8e5564bf16c24c3195c95af1734a4..2e5bb6a8a5a5875a18393d18a41ab14f6b6a17ce 100644
--- a/models/simulation.js
+++ b/models/simulation.js
@@ -33,6 +33,6 @@ var simulationSchema = new Schema({
   models: { type: Array, default: [] },
   projects: [{ type: Schema.Types.ObjectId, ref: 'Project', default: [] }],
   user: { type: Schema.Types.ObjectId, ref: 'User', required: true },
-});
+}, { versionKey: false });
 
 module.exports = mongoose.model('Simulation', simulationSchema);
diff --git a/models/user.js b/models/user.js
index 7503012ea1225ab34102d92dedb55a2416112553..aff470c6107ce77a2b24f96c057fb2351d93c767 100644
--- a/models/user.js
+++ b/models/user.js
@@ -38,7 +38,7 @@ var userSchema = new Schema({
   mail: { type: String, default: "" },
   simulations: [{ type: Schema.Types.ObjectId, ref: 'Simulation', default: [] }],
   files: [{type: Schema.Types.ObjectId, ref: 'File', default: [] }]
-});
+}, { versionKey: false });
 
 userSchema.methods.verifyPassword = function(password, callback) {
   bcrypt.compare(password, this.password, function(err, isMatch) {
diff --git a/models/visualization.js b/models/visualization.js
index c2eb0f9a506a4c81c7ba0d0623e7b10cfb1c1117..53d42e1c08836529d68d9912a32ba4b97683e969 100644
--- a/models/visualization.js
+++ b/models/visualization.js
@@ -31,6 +31,6 @@ var visualizationSchema = new Schema({
   widgets: { type: Array, default: [] },
   grid: { type: Number, default: 1 },
   user: { type: Schema.Types.ObjectId, ref: 'User', required: true }
-});
+}, { versionKey: false });
 
 module.exports = mongoose.model('Visualization', visualizationSchema);
diff --git a/routes/nodes.js b/routes/nodes.js
index 97aaef22bf240013970cdce80fc7f793c070228b..6c1347b2d15ea36e324d57dbe2b97558d64082fe 100644
--- a/routes/nodes.js
+++ b/routes/nodes.js
@@ -48,6 +48,11 @@ router.get('/nodes', function(req, res) {
 });
 
 router.post('/nodes', function(req, res) {
+  // delete id if equals 'null'
+  if (req.body.node._id === null) {
+    delete req.body.node._id;
+  }
+
   // create new node
   const node = new Node(req.body.node);
 
diff --git a/routes/projects.js b/routes/projects.js
index 7d025ba65eda46b23a7a237ae79097da7b784309..bace190c4fb0cf96b20970ddd278903006c21a5f 100644
--- a/routes/projects.js
+++ b/routes/projects.js
@@ -50,6 +50,11 @@ router.get('/projects', /*auth.validateRole('project', 'read'),*/ function(req,
 });
 
 router.post('/projects', /*auth.validateRole('project', 'create'),*/ function(req, res) {
+  // delete id if equals 'null'
+  if (req.body.project._id === null) {
+    delete req.body.project._id;
+  }
+
   // create new project
   req.body.project.user = req.decoded._id;
   const project = new Project(req.body.project);
diff --git a/routes/simulations.js b/routes/simulations.js
index 34097656715ad45374304ee469dbdc240ccf9b40..f079d10636225e46f256c245cad37424f01f4a0d 100644
--- a/routes/simulations.js
+++ b/routes/simulations.js
@@ -48,6 +48,11 @@ router.get('/simulations', /*auth.validateRole('simulation', 'read'),*/ function
 });
 
 router.post('/simulations', /*auth.validateRole('simulation', 'create'),*/ function(req, res) {
+  // delete id if equals 'null'
+  if (req.body.simulation._id === null) {
+    delete req.body.simulation._id;
+  }
+
   // create new simulation
   req.body.simulation.user = req.decoded._id;
   const simulation = new Simulation(req.body.simulation);
diff --git a/routes/visualizations.js b/routes/visualizations.js
index f64fcfecb08d9314d5253612d23d92439880e8c6..4c6b5c6b38cf6668ce32c317707f2e48ee70ca8a 100644
--- a/routes/visualizations.js
+++ b/routes/visualizations.js
@@ -57,6 +57,10 @@ router.post('/visualizations', /*auth.validateRole('visualization', 'create'),*/
     }
 
     // create new visualization
+    if (req.body.visualization._id === null) {
+      delete req.body.visualization._id;
+    }
+
     req.body.visualization.user = req.decoded._id;
     const visualization = new Visualization(req.body.visualization);