diff --git a/pykat/SIfloat.py b/pykat/SIfloat.py
index e18a1750f6083d32529774b2bdd74149d0c9438b..e93166719a30d21bfb80ba68c8776cd670d79cc3 100644
--- a/pykat/SIfloat.py
+++ b/pykat/SIfloat.py
@@ -1,16 +1,14 @@
 import os
 import re
 
-"""
-class SIfloat(value):
-     def __init__(self, value):
-        self.__value = value
-"""     
-
 #staticmethod
 def SIfloat(value):
-    value=str(value)
-
+    if type(value)==list:
+        return [convertToFloat(s) for s in value]
+    else:
+        return convertToFloat(value)
+    
+def convertToFloat(value):
     __prefix = {'y': 1e-24,  # yocto
                 'z': 1e-21,  # zepto
                 'a': 1e-18,  # atto
@@ -30,7 +28,7 @@ def SIfloat(value):
                 'Z': 1e21,   # zetta
                 'Y': 1e24,   # yotta
                 }
+    value = str(value)
     for i, j in __prefix.iteritems():
         value=value.replace(i, str(j))
     return float(value)
-    
diff --git a/pykat/commands.py b/pykat/commands.py
index a86647bcbc79c18b3bcc7d5787cfc020097381c3..7caa7eb29cf2e875efee2a1ad276d47cde001375 100644
--- a/pykat/commands.py
+++ b/pykat/commands.py
@@ -83,7 +83,7 @@ class xaxis(Command):
         if numpy.size(limits) != 2 :
             raise exceptions.ValueError("limits input should be a 2x1 vector of limits for the xaxis")
             
-        self.limits = numpy.array(limits).astype(float)
+        self.limits = numpy.array(SIfloat(limits)).astype(float)
         
         if steps <= 0 :
             raise exceptions.ValueError("steps value should be > 0")            
@@ -128,4 +128,4 @@ class xaxis(Command):
                 comp_name, param_name, self.scale,
                 min(self.limits), max(self.limits), self.steps);
                 
-        
\ No newline at end of file
+        
diff --git a/pykat/components.py b/pykat/components.py
index 96c5c68767e37d32d4ed2156583c19427db146b7..968a5e85b600dc7973e13d80353fc72ce9732fc0 100644
--- a/pykat/components.py
+++ b/pykat/components.py
@@ -71,7 +71,7 @@ class Component(object) :
     
 class Param(float):
     def __new__(self,name,value):
-        return float.__new__(self,value)
+        return float.__new__(self,SIfloat(value))
          
     def __init__(self,name,value):
         self.__name = name
diff --git a/pykat/finesse.py b/pykat/finesse.py
index 158a8b80886f1598357591884b8ce4cd0dafe868..05f75303cdbb9ba0759c651709cbc85167aaa353 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -122,7 +122,7 @@ class kat(object):
     
     def parseKatCode(self, code):
         #commands = code.split("\n")
-        self.parseCommands(commands)
+        self.parseCommands(code)
         
     def parseCommands(self, commands):
         blockComment = False