diff --git a/frontend-js/src/main/js/gui/MapContextMenu.js b/frontend-js/src/main/js/gui/MapContextMenu.js
index 9aeb8274f61eae0c6671ad4bf309baedb0c428a7..52207e7c18f929745c3cc0312257e55206fd3c0b 100644
--- a/frontend-js/src/main/js/gui/MapContextMenu.js
+++ b/frontend-js/src/main/js/gui/MapContextMenu.js
@@ -22,7 +22,9 @@ MapContextMenu.prototype._createMapContextMenuGui = function() {
   self.addOption("Add comment", function() {
     return self.getMap().openCommentDialog();
   });
-  self.addOption("Select mode");
+  self.addOption("Select mode", function() {
+    return self.getMap().turnOnOffDrawing();
+  });
 };
 
 module.exports = MapContextMenu;
diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js
index 500caf5a98e3a13478feb0a3a88100afc344cd3a..668bfaadbc9d6898d286a8af389cb94fe3b961f5 100644
--- a/frontend-js/src/main/js/map/AbstractCustomMap.js
+++ b/frontend-js/src/main/js/map/AbstractCustomMap.js
@@ -25,6 +25,8 @@ function AbstractCustomMap(model, options) {
   if (model === undefined) {
     throw Error("Model must be defined");
   }
+  
+  this.setElement(options.getMapDiv());
 
   this.setModel(model);
 
@@ -959,4 +961,12 @@ AbstractCustomMap.prototype.getBottomRightLatLng = function() {
   return this.getModel().getBottomRightLatLng();
 };
 
+AbstractCustomMap.prototype.getElement = function() {
+  return this._element;
+};
+AbstractCustomMap.prototype.setElement = function(element) {
+  this._element= element;
+};
+
+
 module.exports = AbstractCustomMap;
diff --git a/frontend-js/src/main/js/map/CustomMap.js b/frontend-js/src/main/js/map/CustomMap.js
index 5bc690d92fea8fb41f83874554b52f2bbcc97861..e29c9cf1bf091da2d276d319a5b2183b1854472b 100644
--- a/frontend-js/src/main/js/map/CustomMap.js
+++ b/frontend-js/src/main/js/map/CustomMap.js
@@ -3,6 +3,7 @@
 var Promise = require("bluebird");
 
 var logger = require('../logger');
+var Functions = require('../Functions');
 
 var AbstractCustomMap = require('./AbstractCustomMap');
 var AbstractDbOverlay = require('./overlay/AbstractDbOverlay');
@@ -1333,7 +1334,9 @@ CustomMap.prototype.openCommentDialog = function() {
   return ServerConnector.getClosestElementsByCoordinates({modelId:this.getActiveSubmapId(), coordinates:this.getActiveSubmapClickCoordinates()}).then(function(elements){
     var commentDialog = self.getCommentDialog();
     if (commentDialog===undefined) {
-      commentDialog = new CommentDialog({element:document.getElementById("feedbackContent"), customMap:self});
+      var div = Functions.createElement({type: "div"});
+      self.getElement().appendChild(div);
+      commentDialog = new CommentDialog({element:div, customMap:self});
       self.setCommentDialog(commentDialog);
     }
     self.setCommentDialog(commentDialog);
diff --git a/frontend-js/src/test/js/gui/MapContextMentu-test.js b/frontend-js/src/test/js/gui/MapContextMentu-test.js
index f75bf60fbfb9347b40eb45b67697b2efbb8d9f29..f172642dfe01cbe480bbf5264d645f59e36dfa42 100644
--- a/frontend-js/src/test/js/gui/MapContextMentu-test.js
+++ b/frontend-js/src/test/js/gui/MapContextMentu-test.js
@@ -49,4 +49,24 @@ describe('MapContextMenu', function() {
     });
   });
 
+  it('start select mode', function() {
+    var map;
+    return ServerConnector.getProject().then(function(project) {
+      map = helper.createCustomMap(project);
+
+      var contextMenu = new MapContextMenu({
+        element : testDiv,
+        customMap : map
+      });
+      map.setActiveSubmapId(map.getProject().getModel().getId());
+      map.setActiveSubmapClickCoordinates(new google.maps.Point(2, 12));
+
+      assert.ok(!map.isDrawingOn());
+      var handler = $($("a:contains('Select mode')", $(testDiv))[0]).data("handler");
+      return handler();
+    }).then(function() {
+      assert.ok(map.isDrawingOn());
+    });
+  });
+
 });
diff --git a/frontend-js/src/test/js/mocha-config.js b/frontend-js/src/test/js/mocha-config.js
index 3be5a057ec45cdb7c80e3b2d8c45fff69ba8bcbf..30ec3f6f2cdb0df05bd5180e08805cc6696dc995 100644
--- a/frontend-js/src/test/js/mocha-config.js
+++ b/frontend-js/src/test/js/mocha-config.js
@@ -77,14 +77,9 @@ beforeEach(function() {
   global.testDiv.id = "test";
   document.body.appendChild(testDiv);
 
-  global.dialogDiv = document.createElement("div");
-  global.dialogDiv.id = "feedbackContent";
-  document.body.appendChild(global.dialogDiv);
-
 });
 
 afterEach(function() {
   document.body.removeChild(global.testDiv);
-  document.body.removeChild(global.dialogDiv);
   delete global.testDiv;
 });
diff --git a/frontend-js/testFiles/apiCalls/project/getClosestElementsByCoordinates/coordinates=2.00,12.00&modelId=15781&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getClosestElementsByCoordinates/coordinates=2.00,12.00&modelId=15781&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..74af28b2d648a64715c1d3a1741bdb9e36d6801a
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getClosestElementsByCoordinates/coordinates=2.00,12.00&modelId=15781&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"modelId":15781,"id":329173,"type":"ALIAS"},{"modelId":15781,"id":153511,"type":"REACTION"},{"modelId":15781,"id":153510,"type":"REACTION"},{"modelId":15781,"id":329168,"type":"ALIAS"},{"modelId":15781,"id":153519,"type":"REACTION"}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329167,329173,329179&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329167,329173,329179&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..d795e98950db159005d1bb009236e0d0df2a3162
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329167,329173,329179&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"description of S1\r\nthird line","type":"Protein","name":"s1","bounds":{"x":12.0,"y":6.0,"width":80.0,"height":40.0},"id":329173},{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Protein","name":"s2","bounds":{"x":165.0,"y":43.0,"width":80.0,"height":50.0},"id":329179},{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Antisense RNA","name":"s6","bounds":{"x":101.0,"y":129.5,"width":90.0,"height":25.0},"id":329167}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329167,329179&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329167,329179&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..2b555cf42bb19d4675ca1091285bbd7a17b9a300
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329167,329179&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Protein","name":"s2","bounds":{"x":165.0,"y":43.0,"width":80.0,"height":50.0},"id":329179},{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Antisense RNA","name":"s6","bounds":{"x":101.0,"y":129.5,"width":90.0,"height":25.0},"id":329167}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329168,329177&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329168,329177&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..833d9c445d8850998691c33208f748369719e1a2
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329168,329177&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Drug","name":"s10","bounds":{"x":0.0,"y":186.0,"width":80.0,"height":30.0},"id":329177},{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"RNA","name":"s5","bounds":{"x":0.0,"y":118.5,"width":90.0,"height":25.0},"id":329168}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329177&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329177&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..cd4ce90074603eb3ab95cc6e7994ce184dd7b4fb
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getElements/columns=&id=329177&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"formerSymbols":[],"references":[],"modelId":15781,"synonyms":[],"description":"","type":"Drug","name":"s10","bounds":{"x":0.0,"y":186.0,"width":80.0,"height":30.0},"id":329177}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/project/getReactions/columns=&id=153510&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getReactions/columns=&id=153510&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..e7ac5892a98792a9c28c37ab5273a7c27c7422b2
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getReactions/columns=&id=153510&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"modelId":15781,"reactants":"329173","reactionId":"re5","id":153510,"type":"State transition","lines":[{"start":{"x":92.0,"y":36.98039215686274},"end":{"x":124.64269540833152,"y":45.94113207287532},"type":"START"},{"start":{"x":132.35730459166848,"y":48.05886792712468},"end":{"x":165.0,"y":57.01960784313726},"type":"END"},{"start":{"x":144.03021943732247,"y":129.5},"end":{"x":131.99804583067973,"y":53.145215648491444},"type":"MIDDLE"}],"modifiers":"329167","centerPoint":{"x":128.5,"y":47.0},"products":"329179"}]
\ No newline at end of file
diff --git a/frontend-js/testFiles/apiCalls/project/getReactions/columns=&id=153519&projectId=sample&token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/project/getReactions/columns=&id=153519&projectId=sample&token=MOCK_TOKEN_ID&
new file mode 100644
index 0000000000000000000000000000000000000000..94a7e358a00236f95387822fb427caa0f85aefe7
--- /dev/null
+++ b/frontend-js/testFiles/apiCalls/project/getReactions/columns=&id=153519&projectId=sample&token=MOCK_TOKEN_ID&
@@ -0,0 +1 @@
+[{"modelId":15781,"reactants":"329177","reactionId":"re1","id":153519,"type":"State transition","lines":[{"start":{"x":41.07142857142857,"y":186.0},"end":{"x":42.30429751433407,"y":168.73983479932295},"type":"START"},{"start":{"x":42.87427391423735,"y":160.76016520067705},"end":{"x":44.107142857142854,"y":143.5},"type":"END"}],"modifiers":"","centerPoint":{"x":42.58928571428571,"y":164.75},"products":"329168"}]
\ No newline at end of file