Index: guiframe/local_perspectives/plotting/AnnulusSlicer.py
===================================================================
--- guiframe/local_perspectives/plotting/AnnulusSlicer.py	(revision aef2cf2045b90495c3c2e5f0621bbbd72f563002)
+++ guiframe/local_perspectives/plotting/AnnulusSlicer.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -16,8 +16,8 @@
 class AnnulusInteractor(_BaseInteractor):
     """
-         Select an annulus through a 2D plot.
-         This interactor is used to average 2D data  with the region 
-         defined by 2 radius.
-         this class is defined by 2 Ringinterators.
+    Select an annulus through a 2D plot.
+    This interactor is used to average 2D data  with the region 
+    defined by 2 radius.
+    this class is defined by 2 Ringinterators.
     """
     def __init__(self,base,axes,color='black', zorder=3):
@@ -54,11 +54,11 @@
         self.base.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS)
         
-        
-
     def _onEVT_SLICER_PARS(self, event):
         """
-            receive an event containing parameters values to reset the slicer
-            @param event: event of type SlicerParameterEvent with params as 
+        receive an event containing parameters values to reset the slicer
+        
+        :param event: event of type SlicerParameterEvent with params as 
             attribute
+            
         """
         wx.PostEvent(self.base, StatusEvent(status="AnnulusSlicer._onEVT_SLICER_PARS"))
@@ -70,6 +70,8 @@
     def set_layer(self, n):
         """
-             Allow adding plot to the same panel
-             @param n: the number of layer
+        Allow adding plot to the same panel
+        
+        :param n: the number of layer
+        
         """
         self.layernum = n
@@ -78,5 +80,5 @@
     def clear(self):
         """
-            Clear the slicer and all connected events related to this slicer
+        Clear the slicer and all connected events related to this slicer
         """
         self.clear_markers()
@@ -86,9 +88,8 @@
         self.base.Unbind(EVT_SLICER_PARS)
         
-        
     def update(self):
         """
-            Respond to changes in the model by recalculating the profiles and
-            resetting the widgets.
+        Respond to changes in the model by recalculating the profiles and
+        resetting the widgets.
         """
         # Update locations        
@@ -96,9 +97,8 @@
         self.outer_circle.update()
         
-
     def save(self, ev):
         """
-            Remember the roughness for this layer and the next so that we
-            can restore on Esc.
+        Remember the roughness for this layer and the next so that we
+        can restore on Esc.
         """
         self.base.freeze_axes()
@@ -108,6 +108,8 @@
     def _post_data(self,nbins=None):
         """
-            Uses annulus parameters to plot averaged data into 1D data.
-            @param nbins: the number of points to plot 
+        Uses annulus parameters to plot averaged data into 1D data.
+        
+        :param nbins: the number of points to plot 
+        
         """
         #Data to average
@@ -165,11 +167,10 @@
                                                  title="AnnulusPhi" ))
         
-         
     def moveend(self, ev):
         """
-            Called when any dragging motion ends.
-            Post an event (type =SlicerParameterEvent)
-            to plotter 2D with a copy  slicer parameters
-            Call  _post_data method
+        Called when any dragging motion ends.
+        Post an event (type =SlicerParameterEvent)
+        to plotter 2D with a copy  slicer parameters
+        Call  _post_data method
         """
         self.base.thaw_axes()
@@ -200,6 +201,8 @@
     def get_params(self):
         """
-            Store a copy of values of parameters of the slicer into a dictionary.
-            @return params: the dictionary created
+        Store a copy of values of parameters of the slicer into a dictionary.
+        
+        :return params: the dictionary created
+        
         """
         params = {}
@@ -211,8 +214,10 @@
     def set_params(self, params):
         """
-            Receive a dictionary and reset the slicer with values contained 
-            in the values of the dictionary.
-            @param params: a dictionary containing name of slicer parameters and 
+        Receive a dictionary and reset the slicer with values contained 
+        in the values of the dictionary.
+        
+        :param params: a dictionary containing name of slicer parameters and 
             values the user assigned to the slicer.
+            
         """
         inner = math.fabs(params["inner_radius"] )
@@ -226,10 +231,16 @@
         
     def freeze_axes(self):
+        """
+        """
         self.base.freeze_axes()
         
     def thaw_axes(self):
+        """
+        """
         self.base.thaw_axes()
 
     def draw(self):
+        """
+        """
         self.base.draw()
 
@@ -237,11 +248,13 @@
 class RingInteractor(_BaseInteractor):
     """
-         Draw a ring Given a radius 
-         @param: the color of the line that defined the ring
-         @param r: the radius of the ring
-         @param sign: the direction of motion the the marker 
+     Draw a ring Given a radius 
     """
     def __init__(self,base,axes,color='black', zorder=5, r=1.0,sign=1):
-        
+        """
+        :param: the color of the line that defined the ring
+        :param r: the radius of the ring
+        :param sign: the direction of motion the the marker 
+        
+        """
         _BaseInteractor.__init__(self, base, axes, color=color)
         self.markers = []
@@ -292,6 +305,8 @@
     def set_layer(self, n):
         """
-             Allow adding plot to the same panel
-             @param n: the number of layer
+        Allow adding plot to the same panel
+         
+        :param n: the number of layer
+        
         """
         self.layernum = n
@@ -300,5 +315,5 @@
     def clear(self):
         """
-            Clear the slicer and all connected events related to this slicer
+        Clear the slicer and all connected events related to this slicer
         """
         self.clear_markers()
@@ -311,9 +326,7 @@
                 del self.axes.lines[0]
         
-        
-        
     def get_radius(self):
         """
-            @return self._inner_mouse_x: the current radius of the ring
+        :return self._inner_mouse_x: the current radius of the ring
         """
         return self._inner_mouse_x
@@ -321,5 +334,5 @@
     def update(self):
         """
-            Draw the new roughness on the graph.
+        Draw the new roughness on the graph.
         """
         # Plot inner circle
@@ -349,5 +362,5 @@
     def moveend(self, ev):
         """
-            Called after a dragging motion
+        Called after a dragging motion
         """
         self.base.moveend(ev)
@@ -370,5 +383,5 @@
     def set_cursor(self, x, y):
         """
-            draw the ring given x, y value 
+        draw the ring given x, y value 
         """
         self.move(x, y, None)
@@ -378,6 +391,8 @@
     def get_params(self):
         """
-            Store a copy of values of parameters of the slicer into a dictionary.
-            @return params: the dictionary created
+        Store a copy of values of parameters of the slicer into a dictionary.
+        
+        :return params: the dictionary created
+        
         """
         params = {}
@@ -387,8 +402,10 @@
     def set_params(self, params):
         """
-            Receive a dictionary and reset the slicer with values contained 
-            in the values of the dictionary.
-            @param params: a dictionary containing name of slicer parameters and 
+        Receive a dictionary and reset the slicer with values contained 
+        in the values of the dictionary.
+        
+        :param params: a dictionary containing name of slicer parameters and 
             values the user assigned to the slicer.
+            
         """
         x = params["radius"] 
@@ -397,11 +414,14 @@
 class CircularMask(_BaseInteractor):
     """
-         Draw a ring Given a radius 
-         @param: the color of the line that defined the ring
-         @param r: the radius of the ring
-         @param sign: the direction of motion the the marker 
+     Draw a ring Given a radius 
     """
     def __init__(self,base,axes,color='grey', zorder=3, side=None):
-        
+        """
+        
+        :param: the color of the line that defined the ring
+        :param r: the radius of the ring
+        :param sign: the direction of motion the the marker 
+        
+        """
         _BaseInteractor.__init__(self, base, axes, color=color)
         self.markers = []
@@ -431,10 +451,9 @@
         #self.base.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS)
         
-        
-
     def _onEVT_SLICER_PARS(self, event):
         """
-            receive an event containing parameters values to reset the slicer
-            @param event: event of type SlicerParameterEvent with params as 
+        receive an event containing parameters values to reset the slicer
+        
+        :param event: event of type SlicerParameterEvent with params as 
             attribute
         """
@@ -447,6 +466,8 @@
     def set_layer(self, n):
         """
-             Allow adding plot to the same panel
-             @param n: the number of layer
+        Allow adding plot to the same panel
+         
+        :param n: the number of layer
+        
         """
         self.layernum = n
@@ -455,5 +476,5 @@
     def clear(self):
         """
-            Clear the slicer and all connected events related to this slicer
+        Clear the slicer and all connected events related to this slicer
         """
         self.clear_markers()
@@ -462,9 +483,8 @@
         #self.base.Unbind(EVT_SLICER_PARS)
         
-        
     def update(self):
         """
-            Respond to changes in the model by recalculating the profiles and
-            resetting the widgets.
+        Respond to changes in the model by recalculating the profiles and
+        resetting the widgets.
         """
         # Update locations        
@@ -476,6 +496,6 @@
     def save(self, ev):
         """
-            Remember the roughness for this layer and the next so that we
-            can restore on Esc.
+        Remember the roughness for this layer and the next so that we
+        can restore on Esc.
         """
         self.base.freeze_axes()
@@ -484,6 +504,8 @@
     def _post_data(self):
         """
-            Uses annulus parameters to plot averaged data into 1D data.
-            @param nbins: the number of points to plot 
+        Uses annulus parameters to plot averaged data into 1D data.
+        
+        :param nbins: the number of points to plot 
+        
         """
         #Data to average
@@ -512,8 +534,8 @@
     def moveend(self, ev):
         """
-            Called when any dragging motion ends.
-            Post an event (type =SlicerParameterEvent)
-            to plotter 2D with a copy  slicer parameters
-            Call  _post_data method
+        Called when any dragging motion ends.
+        Post an event (type =SlicerParameterEvent)
+        to plotter 2D with a copy  slicer parameters
+        Call  _post_data method
         """
         self.base.thaw_axes()
@@ -538,6 +560,8 @@
     def get_params(self):
         """
-            Store a copy of values of parameters of the slicer into a dictionary.
-            @return params: the dictionary created
+        Store a copy of values of parameters of the slicer into a dictionary.
+        
+        :return params: the dictionary created
+        
         """
         params = {}
@@ -547,7 +571,8 @@
     def set_params(self, params):
         """
-            Receive a dictionary and reset the slicer with values contained 
-            in the values of the dictionary.
-            @param params: a dictionary containing name of slicer parameters and 
+        Receive a dictionary and reset the slicer with values contained 
+        in the values of the dictionary.
+        
+        :param params: a dictionary containing name of slicer parameters and 
             values the user assigned to the slicer.
         """
Index: guiframe/local_perspectives/plotting/Arc.py
===================================================================
--- guiframe/local_perspectives/plotting/Arc.py	(revision 0d9dae840601f23ae4dd0b9e0317056593727f90)
+++ guiframe/local_perspectives/plotting/Arc.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -10,5 +10,5 @@
 class ArcInteractor(_BaseInteractor):
     """
-         Select an annulus through a 2D plot
+    Select an annulus through a 2D plot
     """
     def __init__(self,base,axes,color='black', zorder=5, r=1.0,theta1=math.pi/8,
@@ -38,8 +38,12 @@
 
     def set_layer(self, n):
+        """
+        """
         self.layernum = n
         self.update()
         
     def clear(self):
+        """
+        """
         self.clear_markers()
         try:
@@ -51,7 +55,7 @@
                 del self.axes.lines[0]
         
-        
-        
     def get_radius(self):
+        """
+        """
         radius =math.sqrt(math.pow(self._mouse_x, 2)+math.pow(self._mouse_y, 2))
         return radius
@@ -72,9 +76,4 @@
         while self.theta2 >= self.theta1+2*math.pi: self.theta2 -= 2*math.pi
 
-        """
-        if nbins!=None:
-            self.npts =nbins
-        else:
-        """
         npts = int((self.theta2 - self.theta1)/(math.pi/120))  
              
@@ -111,4 +110,6 @@
 
     def moveend(self, ev):
+        """
+        """
         self.has_move= False
         
@@ -139,5 +140,6 @@
         
     def set_cursor(self,radius, phi_min, phi_max,nbins):
-        
+        """
+        """
         self.theta1= phi_min
         self.theta2= phi_max
@@ -146,4 +148,6 @@
         
     def get_params(self):
+        """
+        """
         params = {}
         params["radius"] = self.radius
@@ -153,5 +157,6 @@
     
     def set_params(self, params):
-
+        """
+        """
         x = params["radius"] 
         self.set_cursor(x, self._mouse_y)
Index: guiframe/local_perspectives/plotting/AzimutSlicer.py
===================================================================
--- guiframe/local_perspectives/plotting/AzimutSlicer.py	(revision 78cae5a1149ac83383cdbfa454099e1712185aa3)
+++ guiframe/local_perspectives/plotting/AzimutSlicer.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -19,8 +19,9 @@
 class SectorInteractor(_BaseInteractor):
     """
-         Select an annulus through a 2D plot
+    Select an annulus through a 2D plot
     """
     def __init__(self,base,axes,color='black', zorder=3):
-        
+        """
+        """
         _BaseInteractor.__init__(self, base, axes, color=color)
         self.markers = []
@@ -61,6 +62,7 @@
         self.base.parent.Bind(EVT_SLICER_PARS, self._onEVT_SLICER_PARS)
 
-
     def _onEVT_SLICER_PARS(self, event):
+        """
+        """
         #printEVT("AnnulusSlicer._onEVT_SLICER_PARS")
         event.Skip()
@@ -69,11 +71,7 @@
             self.base.update()
 
-    """
-    def update_and_post(self):
-        self.update()
-        self._post_data()
-
-    """
     def save_data(self, path, image, x, y):
+        """
+        """
         output = open(path, 'w')
         
@@ -86,8 +84,12 @@
 
     def set_layer(self, n):
+        """
+        """
         self.layernum = n
         self.update()
         
     def clear(self):
+        """
+        """
         self.clear_markers()
         self.outer_circle.clear()
@@ -105,5 +107,5 @@
         # Update locations   
         if self.inner_circle.has_move:    
-            print "inner circle has moved" 
+            #print "inner circle has moved" 
             self.inner_circle.update()
             r1=self.inner_circle.get_radius()
@@ -112,5 +114,5 @@
             self.left_edge.update(r1,r2)
         if self.outer_circle.has_move:    
-            print "outer circle has moved" 
+            #print "outer circle has moved" 
             self.outer_circle.update()
             r1=self.inner_circle.get_radius()
@@ -119,10 +121,10 @@
             self.right_edge.update(r1,r2)
         if self.right_edge.has_move:
-            print "right edge has moved"
+            #print "right edge has moved"
             self.right_edge.update()
             self.inner_circle.update(theta1=self.right_edge.get_angle(), theta2=None)
             self.outer_circle.update(theta1=self.right_edge.get_angle(), theta2=None)
         if  self.left_edge.has_move:
-            print "left Edge has moved"
+            #print "left Edge has moved"
             self.left_edge.update()
             self.inner_circle.update(theta1=None, theta2=self.left_edge.get_angle())
@@ -220,7 +222,11 @@
         
     def set_cursor(self, x, y):
+        """
+        """
         pass
         
     def get_params(self):
+        """
+        """
         params = {}
         params["r_min"] = self.inner_circle.get_radius()
@@ -232,5 +238,7 @@
     
     def set_params(self, params):
-        print "setparams on main slicer ",params
+        """
+        """
+        #print "setparams on main slicer ",params
         inner = params["r_min"] 
         outer = params["r_max"] 
@@ -239,5 +247,4 @@
         self.nbins = int(params["nbins"])
         
-        
         self.inner_circle.set_cursor(inner, phi_min, phi_max,self.nbins)
         self.outer_circle.set_cursor(outer,  phi_min, phi_max, self.nbins)
@@ -247,18 +254,31 @@
         
     def freeze_axes(self):
+        """
+        """
         self.base.freeze_axes()
         
     def thaw_axes(self):
+        """
+        """
         self.base.thaw_axes()
 
     def draw(self):
+        """
+        """
         self.base.draw()
 
 class SectorInteractorQ(SectorInteractor):
+    """
+    """
     def __init__(self,base,axes,color='black', zorder=3):
+        """
+        """
         SectorInteractor.__init__(self, base, axes, color=color)
         self.base=base
         self._post_data()
+        
     def _post_data(self):
+        """
+        """
         from DataLoader.manipulations import SectorQ
         self.post_data(SectorQ )   
@@ -266,9 +286,16 @@
 
 class SectorInteractorPhi(SectorInteractor):
+    """
+    """
     def __init__(self,base,axes,color='black', zorder=3):
+        """
+        """
         SectorInteractor.__init__(self, base, axes, color=color)
         self.base=base
         self._post_data()
+        
     def _post_data(self):
+        """
+        """
         from DataLoader.manipulations import SectorPhi
         self.post_data(SectorPhi )   
Index: guiframe/local_perspectives/plotting/BaseInteractor.py
===================================================================
--- guiframe/local_perspectives/plotting/BaseInteractor.py	(revision b06ef8cb70788b49507ed818acd3b911d08edcbc)
+++ guiframe/local_perspectives/plotting/BaseInteractor.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -38,6 +38,9 @@
         color - color of the interactor in non-active state
         markers - list of handles for the interactor
+        
     """
     def __init__(self,base,axes,color='black'):
+        """
+        """
         self.base = base
         self.axes = axes
@@ -45,7 +48,7 @@
         
     def clear_markers(self):
-        '''
+        """
         Clear old markers and interfaces.
-        '''
+        """
         for h in self.markers: h.remove()
         if self.markers: self.base.connect.clear(*self.markers)
@@ -53,10 +56,21 @@
 
     def save(self, ev):
+        """
+        """
         pass
+    
     def restore(self, ev):
+        """
+        """
         pass
+    
     def move(self, x, y, ev):
+        """
+        """
         pass
+    
     def moveend(self, ev):
+        """
+        """
         pass
 
@@ -102,4 +116,6 @@
 
     def onRelease(self, ev):
+        """
+        """
         self.moveend(ev)
         return True
@@ -120,10 +136,10 @@
     
     def onKey(self, ev):
-        '''
+        """
         Respond to keyboard events.  Arrow keys move the widget.  Escape
         restores it to the position before the last click.
         
         Calls move() to update the state.  Calls restore() on escape.
-        '''
+        """
         if ev.key == 'escape':
             self.restore()
@@ -141,10 +157,10 @@
 
     def dpixel(self,x,y,nudge=False):
-        '''
+        """
         Return the step size in data coordinates for a small
         step in screen coordinates.  If nudge is False (default)
         the step size is one pixel.  If nudge is True, the step
         size is 0.2 pixels.
-        '''
+        """
         ax = self.axes
         px,py = ax.transData.inverse_xy_tup((x,y))
Index: guiframe/local_perspectives/plotting/binder.py
===================================================================
--- guiframe/local_perspectives/plotting/binder.py	(revision 45c1a351fa94dfbc4affca7da325a37007dc2e27)
+++ guiframe/local_perspectives/plotting/binder.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -80,4 +80,5 @@
             
         Use clearall() to reset all connections.
+        
         """
 
@@ -162,16 +163,17 @@
             if event.button == 1 and event.shift: process Shift-click
 
-        TODO: Only receive events with the correct modifiers (e.g., S-click,
-        TODO:   or *-click for any modifiers).
-        TODO: Only receive button events for the correct button (e.g., click1
-        TODO:   release3, or dclick* for any button)
-        TODO: Support virtual artist, so that and artist can be flagged as
-        TODO:   having a tag list and receive the correct events
-        TODO: Support virtual events for binding to button-3 vs shift button-1
-        TODO:   without changing callback code
-        TODO: Attach multiple callbacks to the same event?
-        TODO: Clean up interaction with toolbar modes
-        TODO: push/pushclear/pop context so that binding changes for the duration
-        TODO:   e.g., to support ? context sensitive help
+        :TODO: Only receive events with the correct modifiers (e.g., S-click,
+        :TODO:   or *-click for any modifiers).
+        :TODO: Only receive button events for the correct button (e.g., click1
+        :TODO:   release3, or dclick* for any button)
+        :TODO: Support virtual artist, so that and artist can be flagged as
+        :TODO:   having a tag list and receive the correct events
+        :TODO: Support virtual events for binding to button-3 vs shift button-1
+        :TODO:   without changing callback code
+        :TODO: Attach multiple callbacks to the same event?
+        :TODO: Clean up interaction with toolbar modes
+        :TODO: push/pushclear/pop context so that binding changes for the duration
+        :TODO:   e.g., to support ? context sensitive help
+        
         """
         # Check that the trigger is valid
Index: guiframe/local_perspectives/plotting/boxMask.py
===================================================================
--- guiframe/local_perspectives/plotting/boxMask.py	(revision aef2cf2045b90495c3c2e5f0621bbbd72f563002)
+++ guiframe/local_perspectives/plotting/boxMask.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -12,12 +12,14 @@
 class BoxMask(_BaseInteractor):
     """
-        BoxMask Class: determine 2 rectangular area to find the pixel of
-        a Data inside of box. 
-        Uses PointerInteractor , VerticalDoubleLine,HorizontalDoubleLine.
-        @param zorder:  Artists with lower zorder values are drawn first.
-        @param x_min: the minimum value of the x coordinate
-        @param x_max: the maximum value of the x coordinate
-        @param y_min: the minimum value of the y coordinate
-        @param y_max: the maximum value of the y coordinate
+    BoxMask Class: determine 2 rectangular area to find the pixel of
+    a Data inside of box. 
+    
+    Uses PointerInteractor , VerticalDoubleLine,HorizontalDoubleLine.
+    
+    :param zorder:  Artists with lower zorder values are drawn first.
+    :param x_min: the minimum value of the x coordinate
+    :param x_max: the maximum value of the x coordinate
+    :param y_min: the minimum value of the y coordinate
+    :param y_max: the maximum value of the y coordinate
 
     """
@@ -83,5 +85,5 @@
     def clear(self):
         """
-            Clear the slicer and all connected events related to this slicer
+        Clear the slicer and all connected events related to this slicer
         """
         self.clear_markers()
@@ -91,12 +93,10 @@
         self.base.connect.clearall()
         #self.base.Unbind(EVT_SLICER_PARS)
-        
-
+    
     def update(self):
         """
-            Respond to changes in the model by recalculating the profiles and
-            resetting the widgets.
-        """
-
+        Respond to changes in the model by recalculating the profiles and
+        resetting the widgets.
+        """
         ## check if the center point has moved and update the figure accordingly 
         if self.center.has_move:
@@ -132,6 +132,6 @@
     def _post_data(self):
         """
-            Get the limits of the boxsum and compute the sum of the pixel
-            contained in that region and the error on that sum
+        Get the limits of the boxsum and compute the sum of the pixel
+        contained in that region and the error on that sum
         """
         from DataLoader.manipulations import Boxcut
@@ -151,9 +151,10 @@
             out = (mask(data))
         #self.base.data.mask=out
-        return out            
+        return out  
+              
     def moveend(self, ev):
         """
-            After a dragging motion this function is called to compute
-            the error and the sum of pixel of a given data 2D 
+        After a dragging motion this function is called to compute
+        the error and the sum of pixel of a given data 2D 
         """
         self.base.thaw_axes()
@@ -169,5 +170,4 @@
         self.center.restore()
         
-        
     def move(self, x, y, ev):
         """
@@ -175,14 +175,14 @@
         """
         pass
-    
     
     def set_cursor(self, x, y):
         pass
         
-        
     def get_params(self):
         """
-            Store a copy of values of parameters of the slicer into a dictionary.
-            @return params: the dictionary created
+        Store a copy of values of parameters of the slicer into a dictionary.
+        
+        :return params: the dictionary created
+        
         """
         params = {}
@@ -191,22 +191,20 @@
         params["center_x"] = self.center.x
         params["center_y"] =self.center.y
-
         return params
     
-  
     def get_mask(self):
         """
-            return mask as a result of boxcut
+        return mask as a result of boxcut
         """
         mask = self.mask
         return mask
     
-        
     def set_params(self, params):
         """
-            Receive a dictionary and reset the slicer with values contained 
-            in the values of the dictionary.
-            @param params: a dictionary containing name of slicer parameters and 
-            values the user assigned to the slicer.
+        Receive a dictionary and reset the slicer with values contained 
+        in the values of the dictionary.
+        
+        :param params: a dictionary containing name of slicer parameters and 
+           values the user assigned to the slicer.
         """
         x_max = math.fabs(params["Width"] )/2
@@ -226,8 +224,6 @@
         self._post_data()
                
-        
     def freeze_axes(self):
         self.base.freeze_axes()
-        
         
     def thaw_axes(self):
Index: guiframe/local_perspectives/plotting/boxSlicer.py
===================================================================
--- guiframe/local_perspectives/plotting/boxSlicer.py	(revision ddf6df34213202735a7a4e74abec43747a3c2cf7)
+++ guiframe/local_perspectives/plotting/boxSlicer.py	(revision 83f44450a45ab4a6b0b432bcc54240ea598a14cb)
@@ -1,12 +1,4 @@
-#TODO: the line slicer should listen to all 2DREFRESH events, get the data and slice it
-#      before pushing a new 1D data update.
-
-#
-#TODO: NEED MAJOR REFACTOR
-#
-
-
-# Debug printout
-#from config import printEVT
+
+
 import wx
 import copy
@@ -24,6 +16,6 @@
 class BoxInteractor(_BaseInteractor):
     """
-         BoxInteractor define a rectangle that return data1D average of Data2D
-         in a rectangle area defined by -x, x ,y, -y
+    BoxInteractor define a rectangle that return data1D average of Data2D
+    in a rectangle area defined by -x, x ,y, -y
     """
     def __init__(self,base,axes,color='black', zorder=3):
@@ -68,6 +60,7 @@
     def _onEVT_SLICER_PARS(self, event):
         """
-            receive an event containing parameters values to reset the slicer
-            @param event: event of type SlicerParameterEvent with params as 
+        receive an event containing parameters values to reset the slicer
+        
+        :param event: event of type SlicerParameterEvent with params as 
             attribute
         """
@@ -81,22 +74,22 @@
     def update_and_post(self):
         """
-            Update the slicer and plot the resulting data
+        Update the slicer and plot the resulting data
         """
         self.update()
         self._post_data()
-
-
+        
     def set_layer(self, n):
         """
-             Allow adding plot to the same panel
-             @param n: the number of layer
+        Allow adding plot to the same panel
+        
+        :param n: the number of layer
+        
         """
         self.layernum = n
         self.update()
         
-        
     def clear(self):
         """
-            Clear the slicer and all connected events related to this slicer
+        Clear the slicer and all connected events related to this slicer
         """
         self.averager=None
@@ -122,6 +115,5 @@
             self.vertical_lines.update()
             self.horizontal_lines.update(x=self.vertical_lines.x)
-               
-            
+                 
     def save(self, ev):
         """
@@ -136,11 +128,12 @@
         pass
         
-    
     def post_data(self,new_slab=None , nbins=None, direction =None):
         """
-             post data averaging in Qx or Qy given new_slab type
-             @param new_slab: slicer that determine with direction to average
-             @param nbins: the number of points plotted when averaging
-             @param direction: the direction of averaging
+        post data averaging in Qx or Qy given new_slab type
+        
+        :param new_slab: slicer that determine with direction to average
+        :param nbins: the number of points plotted when averaging
+        :param direction: the direction of averaging
+        
         """
         x_min= -1*math.fabs(self.vertical_lines.x)
@@ -197,12 +190,10 @@
         wx.PostEvent(self.base.parent, NewPlotEvent(plot=new_plot,
                                                  title=str(self.averager.__name__) ))
-    
-              
-                                       
+          
     def moveend(self, ev):
         """
-            Called after a dragging event.
-            Post the slicer new parameters and creates a new Data1D 
-            corresponding to the new average
+        Called after a dragging event.
+        Post the slicer new parameters and creates a new Data1D 
+        corresponding to the new average
         """
         self.base.thaw_axes()
@@ -215,5 +206,4 @@
         self._post_data()
             
-            
     def restore(self):
         """
@@ -223,5 +213,4 @@
         self.vertical_lines.restore()
        
-
     def move(self, x, y, ev):
         """
@@ -229,14 +218,14 @@
         """
         pass
-        
         
     def set_cursor(self, x, y):
         pass
         
-        
     def get_params(self):
         """
-            Store a copy of values of parameters of the slicer into a dictionary.
-            @return params: the dictionary created
+        Store a copy of values of parameters of the slicer into a dictionary.
+        
+        :return params: the dictionary created
+        
         """
         params = {}
@@ -248,7 +237,8 @@
     def set_params(self, params):
         """
-            Receive a dictionary and reset the slicer with values contained 
-            in the values of the dictionary.
-            @param params: a dictionary containing name of slicer parameters and 
+        Receive a dictionary and reset the slicer with values contained 
+        in the values of the dictionary.
+        
+        :param params: a dictionary containing name of slicer parameters and 
             values the user assigned to the slicer.
         """
@@ -261,14 +251,17 @@
         self.post_data( nbins=None)
         
-        
     def freeze_axes(self):
+        """
+        """
         self.base.freeze_axes()
         
-        
     def thaw_axes(self):
+        """
+        """
         self.base.thaw_axes()
 
-
     def draw(self):
+        """
+        """
         self.base.draw()
 
@@ -276,6 +269,6 @@
 class HorizontalLines(_BaseInteractor):
     """
-         Draw 2 Horizontal lines centered on (0,0) that can move 
-         on the x- direction and in opposite direction
+     Draw 2 Horizontal lines centered on (0,0) that can move 
+     on the x- direction and in opposite direction
     """
     def __init__(self,base,axes,color='black', zorder=5,x=0.5, y=0.5):
@@ -331,6 +324,8 @@
     def set_layer(self, n):
         """
-            Allow adding plot to the same panel
-            @param n: the number of layer
+        Allow adding plot to the same panel
+        
+        :param n: the number of layer
+        
         """
         self.layernum = n
@@ -340,5 +335,5 @@
     def clear(self):
         """
-            Clear this slicer  and its markers
+        Clear this slicer  and its markers
         """
         self.clear_markers()
@@ -355,7 +350,9 @@
     def update(self,x=None,y=None):
         """
-            Draw the new roughness on the graph.
-            @param x: x-coordinates to reset current class x
-            @param y: y-coordinates to reset current class y
+        Draw the new roughness on the graph.
+        
+        :param x: x-coordinates to reset current class x
+        :param y: y-coordinates to reset current class y
+        
         """
         ## Reset x, y- coordinates if send as parameters
@@ -371,5 +368,4 @@
                        ydata=[-self.y, -self.y])
         
-        
     def save(self, ev):
         """
@@ -381,14 +377,12 @@
         self.base.freeze_axes()
 
-
     def moveend(self, ev):
         """
-            Called after a dragging this edge and set self.has_move to False
-            to specify the end of dragging motion
+        Called after a dragging this edge and set self.has_move to False
+        to specify the end of dragging motion
         """
         self.has_move=False
         self.base.moveend(ev)
-           
-            
+             
     def restore(self):
         """
@@ -398,5 +392,4 @@
         self.y = self.save_y
         
-
     def move(self, x, y, ev):
         """
@@ -410,5 +403,5 @@
 class VerticalLines(_BaseInteractor):
     """
-         Select an annulus through a 2D plot
+    Select an annulus through a 2D plot
     """
     def __init__(self,base,axes,color='black',zorder=5,x=0.5, y=0.5):
@@ -456,14 +449,15 @@
     def set_layer(self, n):
         """
-            Allow adding plot to the same panel
-            @param n: the number of layer
+        Allow adding plot to the same panel
+        
+        :param n: the number of layer
+        
         """
         self.layernum = n
         self.update()
         
-        
     def clear(self):
         """
-            Clear this slicer  and its markers
+        Clear this slicer  and its markers
         """
         self.clear_markers()
@@ -477,10 +471,11 @@
                 del self.axes.lines[0]
 
-
     def update(self,x=None,y=None):
         """
-            Draw the new roughness on the graph.
-            @param x: x-coordinates to reset current class x
-            @param y: y-coordinates to reset current class y
+        Draw the new roughness on the graph.
+        
+        :param x: x-coordinates to reset current class x
+        :param y: y-coordinates to reset current class y
+        
         """
         ## reset x, y -coordinates if given as parameters
@@ -496,5 +491,4 @@
                        ydata=[self.y,-self.y]) 
     
-        
     def save(self, ev):
         """
@@ -502,19 +496,16 @@
         can restore on Esc.
         """
-        self.save_x= self.x
-        self.save_y= self.y
-        
+        self.save_x = self.x
+        self.save_y = self.y
         self.base.freeze_axes()
-
-
+        
     def moveend(self, ev):
         """
-            Called after a dragging this edge and set self.has_move to False
-            to specify the end of dragging motion
+        Called after a dragging this edge and set self.has_move to False
+        to specify the end of dragging motion
         """
         self.has_move=False
         self.base.moveend(ev)
-            
-            
+               
     def restore(self):
         """
@@ -524,5 +515,4 @@
         self.y = self.save_y
       
-        
     def move(self, x, y, ev):
         """
@@ -534,9 +524,7 @@
         
    
-        
-
 class BoxInteractorX(BoxInteractor):
     """
-        Average in Qx direction
+    Average in Qx direction
     """
     def __init__(self,base,axes,color='black', zorder=3):
@@ -548,5 +536,5 @@
     def _post_data(self):
         """
-             Post data creating by averaging in Qx direction
+        Post data creating by averaging in Qx direction
         """
         from DataLoader.manipulations import SlabX
@@ -556,5 +544,5 @@
 class BoxInteractorY(BoxInteractor):
     """
-         Average in Qy direction
+    Average in Qy direction
     """
     def __init__(self,base,axes,color='black', zorder=3):
@@ -563,8 +551,7 @@
         self._post_data()
         
-        
     def _post_data(self):
         """
-             Post data creating by averaging in Qy direction
+        Post data creating by averaging in Qy direction
         """
         from DataLoader.manipulations import SlabY
