diff --git a/moose-gui/plugins/kkit.py b/moose-gui/plugins/kkit.py
index 44b5f27e16820a9c2a1faf8187b841a787727ff5..c25936f2d61fe952aa2f86bd63f9f7d10820b139 100644
--- a/moose-gui/plugins/kkit.py
+++ b/moose-gui/plugins/kkit.py
@@ -40,6 +40,7 @@ class KkitPlugin(MoosePlugin):
             self.fileinsertMenu.addAction(self.saveModelAction)
         self._menus.append(self.fileinsertMenu)
         self.getEditorView()
+        
     def SaveModelDialogSlot(self):
         type_sbml = 'SBML'
         type_genesis = 'Genesis'
@@ -71,10 +72,15 @@ class KkitPlugin(MoosePlugin):
                 elif writeerror == 0:
                      QtGui.QMessageBox.information(None,'Could not save the Model','\nThe filename could not be opened for writing')
             elif filters[str(filter_)] == 'Genesis':
-                #self.test = KkitEditorView(self).getCentralWidget().mooseId_GObj
+                self.sceneObj = KkitEditorView(self).getCentralWidget().mooseId_GObj
+                self.coOrdinates = {}
+                for k,v in self.sceneObj.items():
+                    if moose.exists(moose.element(k).path+'/info'):
+                        annoInfo = Annotator(k.path+'/info')
+                        self.coOrdinates[k] = {'x':annoInfo.x, 'y':annoInfo.y}
+
                 filename = filename
-                self.test = None
-                writeerror = write(self.modelRoot,str(filename),self.test)
+                writeerror = write(self.modelRoot,str(filename),self.coOrdinates)
                 if writeerror == False:
                     QtGui.QMessageBox.information(None,'Could not save the Model','\nCheck the file')
                 else:
@@ -305,7 +311,6 @@ class  KineticsWidget(EditorWidgetBase):
         self.editor             = None
 
     def reset(self):
-        #print "reset "
         self.createdItem = {}
         #This are created at drawLine
         self.lineItem_dict = {}
@@ -315,6 +320,7 @@ class  KineticsWidget(EditorWidgetBase):
         if hasattr(self,'sceneContainer'):
                 self.sceneContainer.clear()
         self.sceneContainer = QtGui.QGraphicsScene(self)
+        self.sceneContainer.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex)
         sceneDim = self.sceneContainer.itemsBoundingRect()
         # if (sceneDim.width() == 0 and sceneDim.height() == 0):
         #     self.sceneContainer.setSceneRect(0,0,30,30)
@@ -332,6 +338,7 @@ class  KineticsWidget(EditorWidgetBase):
                 self.layout().removeWidget(self.view)
            #self.sceneContainer.setSceneRect(-self.width()/2,-self.height()/2,self.width(),self.height())
             self.view = GraphicalView(self.modelRoot,self.sceneContainer,self.border,self,self.createdItem)
+
             if isinstance(self,kineticEditorWidget):
                 self.view.setRefWidget("editorView")
                 self.view.setAcceptDrops(True)
@@ -540,6 +547,8 @@ class  KineticsWidget(EditorWidgetBase):
             #Annoinfo.x = xpos
             #Annoinfo.y = -ypos 
         graphicalObj.setDisplayProperties(xpos,ypos,textcolor,bgcolor)
+        Annoinfo.x = xpos
+        Annoinfo.y = ypos
 
     def positioninfo(self,iteminfo):
         Anno = moose.Annotator(self.modelRoot+'/info')
@@ -559,10 +568,11 @@ class  KineticsWidget(EditorWidgetBase):
             y = float(element(iteminfo).getField('y'))
             #Qt origin is at the top-left corner. The x values increase to the right and the y values increase downwards \
             #as compared to Genesis codinates where origin is center and y value is upwards, that is why ypos is negated
-            if Anno.modeltype == "kkit":
-                ypos = 1.0-(y-self.ymin)*self.yratio
-            else:
-                ypos = (y-self.ymin)*self.yratio
+            # if Anno.modeltype == "kkit":
+            #     ypos = 1.0-(y-self.ymin)*self.yratio
+            # else:
+            #     ypos = (y-self.ymin)*self.yratio
+            ypos = (y-self.ymin)*self.yratio
         xpos = (x-self.xmin)*self.xratio
 
         return(xpos,ypos)
@@ -642,10 +652,11 @@ class  KineticsWidget(EditorWidgetBase):
                 pen.setColor(QtCore.Qt.red)
             elif(endtype != 'cplx'):
                 p1 = (next((k for k,v in self.mooseId_GObj.items() if v == src), None))
-                pinfo = p1.path+'/info'
+                pinfo = p1.parent.path+'/info'
                 color,bgcolor = getColor(pinfo)
                 #color = QColor(color[0],color[1],color[2])
-                pen.setColor(color)
+                pen.setColor(bgcolor)
+
         elif isinstance(source, moose.PoolBase) or isinstance(source,moose.Function):
             pen.setColor(QtCore.Qt.blue)
         elif isinstance(source,moose.StimulusTable):
diff --git a/moose-gui/plugins/kkitViewcontrol.py b/moose-gui/plugins/kkitViewcontrol.py
index 404e89341d54a54b5004c8b92426f5f07bfb18e9..91bcef43751fdd3d679e88ba935b0cc999514d29 100644
--- a/moose-gui/plugins/kkitViewcontrol.py
+++ b/moose-gui/plugins/kkitViewcontrol.py
@@ -27,6 +27,7 @@ class GraphicalView(QtGui.QGraphicsView):
         self.setScene(parent)
         self.modelRoot = modelRoot
         self.sceneContainerPt = parent
+        self.sceneContainerPt.setItemIndexMethod(QtGui.QGraphicsScene.NoIndex)
         self.setDragMode(QtGui.QGraphicsView.RubberBandDrag)
         self.itemSelected = False
         self.customrubberBand = None
@@ -144,7 +145,6 @@ class GraphicalView(QtGui.QGraphicsView):
             initial = self.mapToScene(self.state["press"]["pos"])
             final = self.mapToScene(event.pos())
             displacement = final - initial
-            #print("Displacement", displacement)
             for item in self.selectedItems:
                 if isinstance(item, KineticsDisplayItem) and not isinstance(item,ComptItem) and not isinstance(item,CplxItem):
                     item.moveBy(displacement.x(), displacement.y())
@@ -164,6 +164,14 @@ class GraphicalView(QtGui.QGraphicsView):
                 initial = item.parent().pos()
                 final = self.mapToScene(event.pos())
                 displacement = final-initial
+                if isinstance(item.parent(),KineticsDisplayItem):
+                    itemPath = item.parent().mobj.path
+                    if moose.exists(itemPath):
+                        iInfo = itemPath+'/info'
+                        anno = moose.Annotator(iInfo)
+                        anno.x = self.mapToScene(event.pos()).x()
+                        anno.y = self.mapToScene(event.pos()).y()
+                
                 if not isinstance(item.parent(),FuncItem) and not isinstance(item.parent(),CplxItem):
                     self.removeConnector()
                     item.parent().moveBy(displacement.x(), displacement.y())
@@ -245,7 +253,6 @@ class GraphicalView(QtGui.QGraphicsView):
         self.state["release"]["mode"] = VALID
         self.state["release"]["item"] = item
         self.state["release"]["type"] = itemType
-
         clickedItemType = self.state["press"]["type"]
         if clickedItemType == ITEM:
             if not self.state["move"]["happened"]:
@@ -285,6 +292,7 @@ class GraphicalView(QtGui.QGraphicsView):
         if clickedItemType  == CONNECTOR:
             actionType = str(self.state["press"]["item"].data(0).toString())
             
+            
             if actionType == "move":
                 QtGui.QApplication.setOverrideCursor(QtGui.QCursor(Qt.Qt.ArrowCursor))
 
@@ -1127,5 +1135,4 @@ class GraphicalView(QtGui.QGraphicsView):
         if callsetupItem:
             self.layoutPt.getMooseObj()
             setupItem(self.modelRoot,self.layoutPt.srcdesConnection)
-            self.layoutPt.drawLine_arrow(False)
-
+            self.layoutPt.drawLine_arrow(False)
\ No newline at end of file
diff --git a/moose-gui/plugins/modelBuild.py b/moose-gui/plugins/modelBuild.py
index 80b77e0d877ddbf59a13a327f3847a5cd4a00441..8a174efb49c24843352bee0f0be79ae5a537e193 100644
--- a/moose-gui/plugins/modelBuild.py
+++ b/moose-gui/plugins/modelBuild.py
@@ -63,7 +63,6 @@ def checkCreate(scene,view,modelpath,mobj,string,ret_string,num,event_pos,layout
         
         poolinfo = moose.Annotator(poolObj.path+'/info')
         #Compartment's one Pool object is picked to get the font size
-
         
         qGItem = PoolItem(poolObj,itemAtView)
         layoutPt.mooseId_GObj[poolObj] = qGItem
@@ -71,12 +70,15 @@ def checkCreate(scene,view,modelpath,mobj,string,ret_string,num,event_pos,layout
         bgcolor = getRandColor()
         qGItem.setDisplayProperties(posWrtComp.x(),posWrtComp.y(),QtGui.QColor('green'),bgcolor)
         poolinfo.color = str(bgcolor.getRgb())
-        if mType == "new_kkit":
-            poolinfo.x = posWrtComp.x()
-            poolinfo.y = posWrtComp.y()
+        #if mType == "new_kkit":
+        poolinfo.x = posWrtComp.x()
+        poolinfo.y = posWrtComp.y()
         view.emit(QtCore.SIGNAL("dropped"),poolObj)
         setupItem(modelpath.path,layoutPt.srcdesConnection)
         layoutPt.drawLine_arrow(False)
+        poolinfo.x = posWrtComp.x()
+        poolinfo.y = posWrtComp.y()
+        
         #Dropping is on compartment then update Compart size
         if isinstance(mobj,moose.ChemCompt):
             compt = layoutPt.qGraCompt[moose.element(mobj)]
@@ -88,9 +90,9 @@ def checkCreate(scene,view,modelpath,mobj,string,ret_string,num,event_pos,layout
         reacinfo = moose.Annotator(reacObj.path+'/info')
         qGItem = ReacItem(reacObj,itemAtView)
         qGItem.setDisplayProperties(posWrtComp.x(),posWrtComp.y(),"white", "white")
-        if mType == "new_kkit":
-            reacinfo.x = posWrtComp.x()
-            reacinfo.y = posWrtComp.y()
+        #if mType == "new_kkit":
+        reacinfo.x = posWrtComp.x()
+        reacinfo.y = posWrtComp.y()
         layoutPt.mooseId_GObj[reacObj] = qGItem
         view.emit(QtCore.SIGNAL("dropped"),reacObj)
         setupItem(modelpath.path,layoutPt.srcdesConnection)
@@ -106,9 +108,9 @@ def checkCreate(scene,view,modelpath,mobj,string,ret_string,num,event_pos,layout
         tabinfo = moose.Annotator(tabObj.path+'/info')
         qGItem = TableItem(tabObj,itemAtView)
         qGItem.setDisplayProperties(posWrtComp.x(),posWrtComp.y(),QtGui.QColor('white'),QtGui.QColor('white'))
-        if mType == "new_kkit":
-            tabinfo.x = posWrtComp.x()
-            tabinfo.y = posWrtComp.y()
+        #if mType == "new_kkit":
+        tabinfo.x = posWrtComp.x()
+        tabinfo.y = posWrtComp.y()
         layoutPt.mooseId_GObj[tabObj] = qGItem
         view.emit(QtCore.SIGNAL("dropped"),tabObj)
         setupItem(modelpath.path,layoutPt.srcdesConnection)
@@ -128,9 +130,9 @@ def checkCreate(scene,view,modelpath,mobj,string,ret_string,num,event_pos,layout
         #print " function ", posWrtComp.x(),posWrtComp.y()
         qGItem.setDisplayProperties(posWrtComp.x(),posWrtComp.y(),QtGui.QColor('red'),QtGui.QColor('green'))
         layoutPt.mooseId_GObj[funcObj] = qGItem
-        if mType == "new_kkit":
-            funcinfo.x = posWrtComp.x()
-            funcinfo.y = posWrtComp.y()
+        #if mType == "new_kkit":
+        funcinfo.x = posWrtComp.x()
+        funcinfo.y = posWrtComp.y()
         view.emit(QtCore.SIGNAL("dropped"),funcObj)
         setupItem(modelpath.path,layoutPt.srcdesConnection)
         layoutPt.drawLine_arrow(False)
@@ -159,9 +161,10 @@ def checkCreate(scene,view,modelpath,mobj,string,ret_string,num,event_pos,layout
             posWrtComp = pos
             bgcolor = getRandColor()
             qGItem.setDisplayProperties(posWrtComp.x(),posWrtComp.y()-40,QtGui.QColor('green'),bgcolor)
-            if mType == "new_kkit":
-                enzinfo.x = posWrtComp.x()
-                enzinfo.y = posWrtComp.y()
+            #if mType == "new_kkit":
+            enzinfo.x = posWrtComp.x()
+            enzinfo.y = posWrtComp.y()
+        
             enzinfo.color = str(bgcolor.name())
             e = moose.Annotator(enzinfo)
             #e.x = posWrtComp.x()