diff --git a/pykat/commands.py b/pykat/commands.py
index dfbe6f7e922319582c5c046119c139ab42735ce3..2d8953ccedf6887d666e68225689ea9e984deb51 100644
--- a/pykat/commands.py
+++ b/pykat/commands.py
@@ -189,6 +189,9 @@ class xaxis(Command):
         return xaxis(values[2], [values[3], values[4]], values[1], values[5], comp=values[0], axis_type=axis_type)
 
     def getFinesseText(self):
+        if(self._kat.noxaxis):
+            return '# noaxis is true, switching xaxis off'
+            
         # store either the component name of the string provided
         comp_name = self.__comp.name if hasattr(self.__comp, "name") else self.__comp
         param_name = self.__param.name if isinstance(self.__param, Param) else self.__param
@@ -198,8 +201,8 @@ class xaxis(Command):
                 min(self.limits), max(self.limits), self.steps, axis_type=self._axis_type);
 
 class x2axis(xaxis):
-    def __init__(self, scale, limits, param, steps, comp=None):
-        xaxis.__init__(self, scale, limits, param, steps, comp=comp, axis_type="x2axis")
+    def __init__(self, scale, limits, param, steps, comp=None, axis_type="x2axis"):
+        xaxis.__init__(self, scale, limits, param, steps, comp=comp, axis_type=axis_type)
         self.x = putter("x2")
         self.mx = putter("mx2")
 
@@ -217,4 +220,4 @@ class x2axis(xaxis):
         if len(values) != 6:
             raise pkex.BasePyKatException("xaxis Finesse code format incorrect '{0}'".format(text))
 
-        return x2axis(values[2], [values[3], values[4]], values[1], values[5], comp=values[0])
+        return x2axis(values[2], [values[3], values[4]], values[1], values[5], comp=values[0],axis_type=axis_type)
diff --git a/pykat/finesse.py b/pykat/finesse.py
index 05dba75374dc5f6e92d0b00f4f0a317da0f173fc..27512b2dffa9fcde4b27e9734feb5e3d0a1c6a8e 100644
--- a/pykat/finesse.py
+++ b/pykat/finesse.py
@@ -156,7 +156,7 @@ class katRun(object):
         self.katScript = None
         self.katVersion = None
         self.yaxis = None
-
+        
     def plot(self):
         import pylab
         
@@ -218,7 +218,7 @@ class katRun2D(object):
         with open(filename,'r') as infile:
             return pickle.load(infile)
     
-    def get(self, value): return self[value]
+    def get(self, value): return self[value].squeeze()
     
     def __getitem__(self, value):
         idx = [i for i in range(len(self.zlabels)) if self.zlabels[i].split()[0] == str(value)]
@@ -387,7 +387,7 @@ class kat(object):
         self.__trace = None
         self.__phase = None
         self.__maxtem = None
-        self.__noxaxis = None
+        self.__noxaxis = False
         self.__time_code = None
         self.__yaxis = "abs" # default yaxis
         self.__lambda0 = 1064e-9
@@ -815,7 +815,7 @@ class kat(object):
             if self.verbose: print "--------------------------------------------------------------"
             if self.verbose: print "Running kat - Started at " + str(start)
             
-            if hasattr(self, "x2axis"):
+            if hasattr(self, "x2axis") and self.noxaxis == False:
                 r = katRun2D()
             else:
                 r = katRun()
@@ -922,7 +922,7 @@ class kat(object):
 
                 if self.verbose: print "\nOutput data saved to '{0}'".format(newoutfile)
             
-            if hasattr(self, "x2axis"):
+            if hasattr(self, "x2axis") and self.noxaxis == False:
                 [r.x,r.y,r.z,hdr] = self.readOutFile(outfile)
                 
                 r.xlabel = hdr[0]
@@ -1067,7 +1067,7 @@ class kat(object):
         if len(data.shape) == 1:
             data = np.array([data])
                             
-        if hasattr(self, "x2axis"):
+        if hasattr(self, "x2axis") and self.noxaxis == False:
             # need to parse 2D outputs slightly different as they are effectively 2D matrices
             # written in linear form
             x = data[0::(1+self.x2axis.steps),0]
@@ -1193,7 +1193,7 @@ class kat(object):
 
         if self.noxaxis == True:
             out.append("noxaxis\n")
-
+            
         if self.yaxis != None:
             out.append("yaxis {0}\n".format(self.yaxis))
         
diff --git a/pykat/utilities/maps.py b/pykat/utilities/maps.py
index 613830a507aaa55b70ddf2ec261bcdb2b0084a4e..5e10b7bcd329dbe8afed8cd0e1693d00d5d1786d 100644
--- a/pykat/utilities/maps.py
+++ b/pykat/utilities/maps.py
@@ -29,7 +29,7 @@ class surfacemap:
                     mapfile.write("%.15g " % self.data[i,j])
                 mapfile.write("\n")
     
-    def plot(self):
+    def plot(self, show=True, clabel=None):
         
         import pylab
         
@@ -40,11 +40,18 @@ class surfacemap:
         axes = pylab.imshow(self.data, extent=[min(xrange),max(xrange),min(yrange),max(yrange)])
         pylab.xlabel('x [cm]')
         pylab.ylabel('y [cm]')
+
         pylab.title('Surface map {0}, type {1}'.format(self.name, self.type))
+        
         cbar = fig.colorbar(axes)
-        pylab.show()
-           
-           
+        
+        if clabel != None:
+            cbar.set_label(clabel)
+                
+        if show:
+            pylab.show()
+            
+        return fig
            
 def read_map(filename):
     with open(filename, 'r') as f: