Index: invariantview/perspectives/invariant/invariant.py
===================================================================
--- invariantview/perspectives/invariant/invariant.py	(revision d65a00abeab1ed08c5fce3c0942782c096968968)
+++ invariantview/perspectives/invariant/invariant.py	(revision f1e06a8e320c878e4938b288125a59701ad41ad5)
@@ -23,9 +23,9 @@
 from sans.guiframe.dataFitting import Data1D
 
-from sans.guicomm.events import NewPlotEvent
-from sans.guicomm.events import ERR_DATA
-from invariant_state import Reader as reader
+from sans.guiframe.events import NewPlotEvent
+from sans.guiframe.events import ERR_DATA
+from .invariant_state import Reader as reader
 from DataLoader.loader import Loader
-from invariant_panel import InvariantPanel
+from .invariant_panel import InvariantPanel
 from sans.guicomm.events import EVT_INVSTATE_UPDATE
 
@@ -57,5 +57,5 @@
         Show a general help dialog. 
         """
-        from help_panel import  HelpWindow
+        from .help_panel import  HelpWindow
         frame = HelpWindow(None, -1)    
         frame.Show(True)
@@ -144,4 +144,5 @@
         data.dy = dy
         data.name = item.name
+        data.title = item.title
         
         ## allow to highlight data when plotted
@@ -178,4 +179,23 @@
                 self.compute_helper(data=data)
                 
+    def set_data(self, data_list):
+        """
+        receive a list of data and compute invariant
+        """
+        if len(data_list) > 1:
+            msg = "invariant panel does not allow more than one value"
+            msg += " at this time"
+            raise ValueError, msg
+        elif len(data_list) == 1:
+            if issubclass(data_list[0].__class__, LoaderData1D):
+                self.compute_helper(data_list[0])
+                wx.PostEvent(self.parent, NewPlotEvent(plot=data_list[0],
+                                               title=data_list[0].title))
+            else:
+                msg = "invariant cannot be computed for"
+                msg += " data of type %s" % (data_list[0].__class__.__name__)
+                raise ValueError, msg
+            
+            
     def compute_helper(self, data):
         """
@@ -189,5 +209,5 @@
             # Set the data set to be user for invariant calculation
             self.invariant_panel.set_data(data=data)
-        
+           
     def save_file(self, filepath, state=None):
         """
@@ -282,4 +302,5 @@
         new_plot.group_id = self.__data.group_id
         new_plot.id = self.__data.id + name
+        new_plot.title = self.__data.title
         # Save theory_data in a state
         if data != None:
@@ -288,8 +309,8 @@
                 self.invariant_panel.state.theory_lowQ = copy.deepcopy(new_plot)
             elif name_head[0] == 'High':
-                self.invariant_panel.state.theory_highQ = copy.deepcopy(new_plot)
+                self.invariant_panel.state.theory_highQ =copy.deepcopy(new_plot)
 
         wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot,
-                                               title=self.__data.name))
+                                               title=self.__data.title))
         
     def plot_data(self, scale, background):
@@ -301,4 +322,5 @@
         new_plot.group_id = self.__data.group_id
         new_plot.id = self.__data.id 
+        new_plot.title = self.__data.title
        
         # Save data in a state: but seems to never happen 
@@ -306,4 +328,4 @@
             self.invariant_panel.state.data = copy.deepcopy(new_plot)
         wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot,
-                                               title=new_plot.name))
-        
+                                               title=new_plot.title))
+        
Index: invariantview/perspectives/invariant/invariant_panel.py
===================================================================
--- invariantview/perspectives/invariant/invariant_panel.py	(revision 6a0cbcf411592339ae2ab4bb9e9a5d01b1643e74)
+++ invariantview/perspectives/invariant/invariant_panel.py	(revision f1e06a8e320c878e4938b288125a59701ad41ad5)
@@ -12,10 +12,10 @@
 from sans.guiframe.utils import format_number
 from sans.guiframe.utils import check_float
-from sans.guicomm.events import NewPlotEvent, StatusEvent
-from invariant_details import InvariantDetailsPanel
-from invariant_details import InvariantContainer
-from invariant_widgets import OutputTextCtrl
-from invariant_widgets import InvTextCtrl
-from invariant_state import InvariantState as IState
+from sans.guiframe.events import StatusEvent
+from .invariant_details import InvariantDetailsPanel
+from .invariant_details import InvariantContainer
+from .invariant_widgets import OutputTextCtrl
+from .invariant_widgets import InvTextCtrl
+from .invariant_state import InvariantState as IState
 from sans.guiframe.panel_base import PanelBase
 # The minimum q-value to be used when extrapolating
@@ -141,4 +141,5 @@
             self.state.data = copy.deepcopy(data)
             self._reset_state_list()
+            
         return True  
     
@@ -531,7 +532,9 @@
         
         low_q = self.enable_low_cbox.GetValue()
-        high_q = self.enable_high_cbox.GetValue()  
+        high_q = self.enable_high_cbox.GetValue() 
+        temp_data = copy.deepcopy(self._data)
+        
         #set invariant calculator 
-        inv = invariant.InvariantCalculator(data=self._data,
+        inv = invariant.InvariantCalculator(data=temp_data,
                                             background=background,
                                             scale=scale)
@@ -618,5 +621,5 @@
             wx.PostEvent(self.parent,
                 StatusEvent(status='\nFinished invariant computation...'))
-            
+           
 
     def undo(self,event=None):
@@ -674,5 +677,5 @@
         : param event: report button event
         """
-        from report_dialog import ReportDialog
+        from .report_dialog import ReportDialog
 
         self.state.set_report_string()
@@ -717,6 +720,7 @@
             except:
                 pass
-          
+        
         self.compute_invariant(event=None)
+       
         # set the input params at the state at pre_state_num
         for key in current_state:
