 				return
 
 			$scope.net = net
+
+			# watch for tool changes
+			$scope.$watch 'net.activeTool', ->
+				if net.getActiveTool().draggable # drag and drop
+					nodes.call(drag)
+				else
+					nodes.on('mousedown.drag', null)
+					nodes.on('touchstart.drag', null)
+
+			# Delte net via the error card
 			$scope.deleteNet = () -> netStorageService.deleteNet(net.name)
 
 			svg = d3.select('#main-canvas svg')

				edge.target = net.nodes.filter((node) -> node.id == edge.target.id)[0]

			# motion starts here
			svg.on('mousedown', mousedown).on('mousemove', mousemove).on 'mouseup', mouseup
			restart()

		catch error
			console.error error


				.on 'mousedown', (node) ->

					# select node
					mouseDownNode = node
					if mouseDownNode == selectedNode
