diff --git a/dstat-interface/dstat-interface/dstat_comm.py b/dstat-interface/dstat-interface/dstat_comm.py
index ff4dab024f5949b782e6625d80b2dce11b388985..b34eddb030429c64e180bcaf485b55a86590ca0c 100644
--- a/dstat-interface/dstat-interface/dstat_comm.py
+++ b/dstat-interface/dstat-interface/dstat_comm.py
@@ -54,13 +54,11 @@ class Experiment(object):
         self.proc.start()
 
     def __init__(self, parameters, main_pipe):
-        """Must be overridden to define self.parameters, and self.databytes."""
+        """Adds commands for gain and ADC."""
         self.parameters = parameters
         self.main_pipe = main_pipe
         self.databytes = 8
-    
-    def init(self):
-        """Adds commands for gain and ADC."""
+
         self.data_extra = []  # must be defined even when not needed
         self.__gaintable = [1e2, 3e2, 3e3, 3e4, 3e5, 3e6, 3e7, 5e8]
         self.gain = self.__gaintable[int(self.parameters['gain'])]
@@ -147,11 +145,11 @@ class Experiment(object):
         """
         pass
 
-class chronoamp(Experiment):
+class Chronoamp(Experiment):
     """Chronoamperometry experiment"""
     def __init__(self, parameters, main_pipe):
-        self.main_pipe = main_pipe
-        self.parameters = parameters
+        super(Chronoamp, self).__init__(parameters, main_pipe)
+
         self.datatype = "linearData"
         self.xlabel = "Time (s)"
         self.ylabel = "Current (A)"
@@ -164,8 +162,6 @@ class chronoamp(Experiment):
         for i in self.parameters['time']:
             self.xmax += int(i)
         
-        self.init()  # need to call after xmin and xmax are set
-        
         self.commands += "R"
         self.commands[2] += str(len(self.parameters['potential']))
         self.commands[2] += " "
@@ -184,11 +180,10 @@ class chronoamp(Experiment):
         return (scan,
                 [seconds+milliseconds/1000., current*(1.5/self.gain/8388607)])
 
-class lsv_exp(Experiment):
+class LSVExp(Experiment):
     """Linear Scan Voltammetry experiment"""
-    def __init__(self, parameters, send_pipe):
-        self.main_pipe = send_pipe
-        self.parameters = parameters
+    def __init__(self, parameters, main_pipe):
+        super(LSVExp, self).__init__(parameters, main_pipe)
 
         self.datatype = "linearData"
         self.xlabel = "Voltage (mV)"
@@ -219,11 +214,10 @@ class lsv_exp(Experiment):
         self.commands[2] += str(self.parameters['slope'])
         self.commands[2] += " "
 
-class cv_exp(Experiment):
+class CVExp(Experiment):
     """Cyclic Voltammetry experiment"""
     def __init__(self, parameters, main_pipe):
-        self.main_pipe = main_pipe
-        self.parameters = parameters
+        super(CVExp, self).__init__(parameters, main_pipe)
  
         self.datatype = "CVData"
         self.xlabel = "Voltage (mV)"
@@ -234,8 +228,6 @@ class cv_exp(Experiment):
         self.xmin = self.parameters['v1']
         self.xmax = self.parameters['v2']
         
-        self.init()
-        
         self.commands += "C"
         self.commands[2] += str(self.parameters['clean_s'])
         self.commands[2] += " "
@@ -258,11 +250,10 @@ class cv_exp(Experiment):
         self.commands[2] += str(self.parameters['slope'])
         self.commands[2] += " "
 
-class swv_exp(Experiment):
+class SWVExp(Experiment):
     """Square Wave Voltammetry experiment"""
     def __init__(self, parameters, main_pipe):
-        self.main_pipe = main_pipe
-        self.parameters = parameters
+        super(SWVExp, self).__init__(parameters, main_pipe)
 
         self.datatype = "SWVData"
         self.xlabel = "Voltage (mV)"
@@ -273,8 +264,7 @@ class swv_exp(Experiment):
         
         self.xmin = self.parameters['start']
         self.xmax = self.parameters['stop']
-        
-        self.init()
+
         # forward/reverse stored here - needs to be after 
         # self.init to keep from being redefined
         self.data_extra = [[], []]  
@@ -314,12 +304,11 @@ class swv_exp(Experiment):
                        reverse*(1.5/self.gain/8388607)])
 
 
-class dpv_exp(swv_exp):
+class DPVExp(SWVExp):
     """Diffential Pulse Voltammetry experiment."""
     def __init__(self, parameters, main_pipe):
-        """Overrides swv_exp method"""
-        self.main_pipe = main_pipe
-        self.parameters = parameters
+        """Overrides SWVExp method"""
+        super(DPVExp, self).__init__(parameters, main_pipe)
         
         self.datatype = "SWVData"
         self.xlabel = "Voltage (mV)"
diff --git a/dstat-interface/dstat-interface/main.py b/dstat-interface/dstat-interface/main.py
index e2cb161c97aeefb50fbce670b4ad5441c01fd0ff..9f7d2d6a19bf8ac3e40e5f113b141e923062a746 100644
--- a/dstat-interface/dstat-interface/main.py
+++ b/dstat-interface/dstat-interface/main.py
@@ -24,7 +24,7 @@ import interface.save as save
 import dstat_comm as comm
 import interface.exp_window as exp_window
 import interface.adc_pot as adc_pot
-import mpltest
+import plot
 import microdrop
 
 from serial import SerialException
@@ -77,7 +77,7 @@ class Main(object):
         self.autosavedir_button = self.builder.get_object('autosavedir_button')
         self.autosavename = self.builder.get_object('autosavename')
         
-        self.plot = mpltest.plotbox(self.plotwindow)
+        self.plot = plot.plotbox(self.plotwindow)
         
         #fill adc_pot_box
         self.adc_pot_box = self.builder.get_object('gain_adc_box')
@@ -205,7 +205,7 @@ class Main(object):
                                      "Step table is empty")
                 
                 self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
-                self.current_exp = comm.chronoamp(parameters, self.send_p)
+                self.current_exp = comm.Chronoamp(parameters, self.send_p)
                 
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
@@ -257,15 +257,10 @@ class Main(object):
                                      "Start cannot equal Stop.")
 
                 self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
-                self.current_exp = comm.lsv_exp(parameters, self.send_p)
+                self.current_exp = comm.LSVExp(parameters, self.send_p)
                 
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
-                self.rawbuffer.set_text("")
-                self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
-                
-                for i in self.current_exp.commands:
-                    self.rawbuffer.insert_at_cursor(i)
                 
                 self.current_exp.run_wrapper(
                     self.serial_liststore.get_value(
@@ -274,7 +269,7 @@ class Main(object):
                 self.send_p.close()
 
                 self.plot_proc = gobject.timeout_add(200, 
-                                                self.experiment_running_plot)
+                                                   self.experiment_running_plot)
                 gobject.idle_add(self.experiment_running)
                 return
             
@@ -316,15 +311,10 @@ class Main(object):
                                      "Vertex 1 cannot equal Vertex 2.")
                 
                 self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
-                self.current_exp = comm.cv_exp(parameters, self.send_p)
+                self.current_exp = comm.CVExp(parameters, self.send_p)
                 
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
-                self.rawbuffer.set_text("")
-                self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
-                
-                for i in self.current_exp.commands:
-                    self.rawbuffer.insert_at_cursor(i)
                 
                 self.current_exp.run_wrapper(
                     self.serial_liststore.get_value(
@@ -333,7 +323,7 @@ class Main(object):
                 self.send_p.close()
                 
                 self.plot_proc = gobject.timeout_add(200, 
-                                                self.experiment_running_plot)
+                                                   self.experiment_running_plot)
                 gobject.idle_add(self.experiment_running)
                 return
                 
@@ -384,15 +374,10 @@ class Main(object):
                                      "Start cannot equal Stop.")
                     
                 self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
-                self.current_exp = comm.swv_exp(parameters, self.send_p)
+                self.current_exp = comm.SWVExp(parameters, self.send_p)
                 
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
-                self.rawbuffer.set_text("")
-                self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
-                
-                for i in self.current_exp.commands:
-                    self.rawbuffer.insert_at_cursor(i)
                 
                 self.current_exp.run_wrapper(
                     self.serial_liststore.get_value(
@@ -448,15 +433,10 @@ class Main(object):
                                      "Start cannot equal Stop.")
                 
                 self.recv_p, self.send_p = multiprocessing.Pipe(duplex=True)
-                self.current_exp = comm.dpv_exp(parameters, self.send_p)
+                self.current_exp = comm.DPVExp(parameters, self.send_p)
                 
                 self.plot.clearall()
                 self.plot.changetype(self.current_exp)
-                self.rawbuffer.set_text("")
-                self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
-
-                for i in self.current_exp.commands:
-                    self.rawbuffer.insert_at_cursor(i)
 
                 self.current_exp.run_wrapper(
                     self.serial_liststore.get_value(
@@ -551,6 +531,9 @@ class Main(object):
         self.rawbuffer.set_text("")
         self.rawbuffer.place_cursor(self.rawbuffer.get_start_iter())
 
+        for i in self.current_exp.commands:
+            self.rawbuffer.insert_at_cursor(i)
+
         for col in zip(*self.current_exp.data):
             for row in col:
                 self.rawbuffer.insert_at_cursor(str(row)+ "    ")
@@ -590,11 +573,11 @@ class Main(object):
     def on_file_save_exp_activate(self, menuitem, data=None):
         """Activate dialogue to save current experiment data. """
         if self.current_exp:
-            save_inst = save.manSave(self.current_exp)
+            save.manSave(self.current_exp)
     
     def on_file_save_plot_activate(self, menuitem, data=None):
         """Activate dialogue to save current plot."""
-        save_inst = save.plotSave(self.plot)
+        save.plotSave(self.plot)
     
     def on_menu_dropbot_connect_activate(self, menuitem, data=None):
         """Listen for remote control connection from µDrop."""
diff --git a/dstat-interface/dstat-interface/mpltest.py b/dstat-interface/dstat-interface/plot.py
similarity index 100%
rename from dstat-interface/dstat-interface/mpltest.py
rename to dstat-interface/dstat-interface/plot.py