diff --git a/bin/test_plot.py b/bin/test_plot.py
index bc8eba7edc02d3effe09ba0028a3975b37098698..eb73899e9481c230d6f39c47682a24fd1c6ea998 100644
--- a/bin/test_plot.py
+++ b/bin/test_plot.py
@@ -23,9 +23,9 @@ kat.parseCommands(code)
 
 kat.add(cavity('cav1', 'm1', 'n3', 'm2', 'n4'))
 
-kat.add(photodiode('pd_cav','n4',[]))
-kat.add(photodiode('pd_ref','n2',[]))
-kat.add(photodiode('pd_trs','n5',[]))
+kat.add(photodiode('pd_cav','n4'))
+kat.add(photodiode('pd_ref','n2'))
+kat.add(photodiode('pd_trs','n5'))
 
 kat.add(xaxis("lin", [0, 360], kat.m2, kat.m2.phi, 100))
 
diff --git a/pykat/detectors.py b/pykat/detectors.py
index 403ca409655f250e446f65d1157e532d74ffa22c..ed5ca3759eddad959b2fcb61ae609af0ca3c4fca 100644
--- a/pykat/detectors.py
+++ b/pykat/detectors.py
@@ -19,6 +19,7 @@ class Detector(object) :
         self.noplot = False
         self.enabled = True
         self.tag = None
+        self.__node = None
         
         if node.find('*'):
             self._alternate_beam = True
@@ -27,7 +28,7 @@ class Detector(object) :
         self.__requested_node = node
 
     def _on_kat_add(self, kat):
-        self._node = kat.nodes.createNode(self.__requested_node)
+        self.__node = kat.nodes.createNode(self.__requested_node)
     
     @staticmethod
     def parseFinesseText(text):    
@@ -40,8 +41,8 @@ class Detector(object) :
     def getQGraphicsItem(self):    
         return None
     
-    def getNodes(self):
-        return [self._node]
+    @property 
+    def node(self): return self.__node
         
     def __getname(self):
         return self.__name        
@@ -86,7 +87,7 @@ class photodiode(Detector):
                 self.values[key] = SIfloat(value)
                 
     
-    def __init__(self, name, node, senstype, num_demods, demods):        
+    def __init__(self, name, node, senstype=None, num_demods=0, demods=[]):        
         Detector.__init__(self, name, node)
         if num_demods>2:
             raise NotImplementedError("pd with more than two demodulations not implemented yet")   
@@ -94,10 +95,10 @@ class photodiode(Detector):
         self.senstype = senstype
         # every second element into f (starting at 1)
         self.f(demods[::2])
-        print self.f[1]
+        
         # every second element into phi (starting at 2)
         self.phi([1,2])
-        print self.phi[1]
+        
         for i in demods[1::2]:
             self.phi.append(i)
         
@@ -148,9 +149,9 @@ class photodiode(Detector):
             rtn = []
             
             if self._alternate_beam:
-                rtn.append("pd {0} {1}".format(self.name, self._node.name))
+                rtn.append("pd {0} {1}".format(self.name, self.node.name))
             else:
-                rtn.append("pd {0} {1}*".format(self.name, self._node.name))
+                rtn.append("pd {0} {1}*".format(self.name, self.node.name))
             
             if self.noplot:
                 rtn.append("noplot {0}".format(self.name))
@@ -161,7 +162,7 @@ class photodiode(Detector):
     
     def getQGraphicsItem(self):
         if self._svgItem == None:
-            self._svgItem = ComponentQGraphicsItem(":/resources/photodiode_red.svg",self,[(-5,11,self._node)])
+            self._svgItem = ComponentQGraphicsItem(":/resources/photodiode_red.svg",self,[(-5,11,self.node)])
         
         return self._svgItem    
         
diff --git a/pykat/finesse.py b/pykat/finesse.py
index 77a1c79339f61fa2ed16c98771b4f1982f0168b4..d859286713d2fdeb89500396389f489987d2a56e 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -198,11 +198,10 @@ class kat(object):
                 else:
                     print "Parsing `{0}` into pykat object not implemented yet, added as extra line.".format(line)
                     obj = line
-                
-                self.__blocks[self.__currentTag].contents.append(obj)
+                    # manually add the line to the block contents
+                    self.__blocks[self.__currentTag].contents.append(line) 
                 
                 if not isinstance(obj, str):
-                    self.__blocks[self.__currentTag].contents.append(obj)
                     self.add(obj)
                     
         self.__currentTag = NO_BLOCK 
@@ -342,10 +341,10 @@ class kat(object):
             print fe
             
         
-    def add(self, obj) :
-        print type(obj)
+    def add(self, obj):
         try:
             obj.tag = self.__currentTag
+            self.__blocks[self.__currentTag].contents.append(obj)
             
             if isinstance(obj, Component):
                 
@@ -409,8 +408,8 @@ class kat(object):
         
         for key in self.__blocks:
             objs = self.__blocks[key].contents
-            print key, objs
-            out.append("%%% FTblock " + key)
+            
+            out.append("%%% FTblock " + key + "\n")
             
             for obj in objs:
                 if isinstance(obj, str):
@@ -425,7 +424,7 @@ class kat(object):
                         else:
                             out.append(txt + "\n")
                             
-            out.append("%%% FTend " + key)
+            out.append("%%% FTend " + key + "\n")
         
         if self.noxaxis != None and self.noxaxis == True:
             out.append("noxaxis\n")
diff --git a/pykat/node_network.py b/pykat/node_network.py
index de4221dd77cef26a5b7a25203a0b54d446ab30dd..eb0c62b1d2c2f8c3b9540de426b0a50ef4b3e2bc 100644
--- a/pykat/node_network.py
+++ b/pykat/node_network.py
@@ -35,8 +35,8 @@ class NodeNetwork(object):
         list = []
         
         for name in node_names:
-            n = createNode(name)
-            self.connectNodeToComp(node, comp, do_callback=False)
+            n = self.createNode(name)
+            self.connectNodeToComp(n, comp, do_callback=False)
             list.append(n)
         
         self.__componentNodes[comp.id] = tuple(list)