Index: park_integration/src/sans/fit/AbstractFitEngine.py
===================================================================
--- park_integration/src/sans/fit/AbstractFitEngine.py	(revision 1cff677a3a71b743f65bf36881980f15370633c3)
+++ park_integration/src/sans/fit/AbstractFitEngine.py	(revision 634ca14007e5d669c64e5eae63fe40bf8e30cb34)
@@ -170,5 +170,5 @@
     a way to get residuals from data.
     """
-    def __init__(self, x, y, dx=None, dy=None, smearer=None):
+    def __init__(self, x, y, dx=None, dy=None, smearer=None, data=None):
         """
         :param smearer: is an object of class QSmearer or SlitSmearer
@@ -191,5 +191,5 @@
         """
         Data1D.__init__(self, x=x, y=y, dx=dx, dy=dy)
-        
+        self.sans_data = data
         self.smearer = smearer
         self._first_unsmeared_bin = None
@@ -309,4 +309,5 @@
         self.radius = 0
         self.res_err_data = []
+        self.sans_data = sans_data2d
         self.set_data(sans_data2d)
 
@@ -625,4 +626,5 @@
             fitdata = FitData1D(x=data.x, y=data.y ,
                                  dx=data.dx, dy=data.dy, smearer=smearer)
+        fitdata.sans_data = data
        
         fitdata.set_fit_range(qmin=qmin, qmax=qmax)
Index: park_integration/src/sans/fit/Fitting.py
===================================================================
--- park_integration/src/sans/fit/Fitting.py	(revision cc83c6497305189187efe9a656f424557ee24188)
+++ park_integration/src/sans/fit/Fitting.py	(revision 634ca14007e5d669c64e5eae63fe40bf8e30cb34)
@@ -55,9 +55,9 @@
                                 ftol=ftol)
      
-    def set_model(self, model, id, pars=[], constraints=[]):
+    def set_model(self, model, id, pars=[], constraints=[], data=None):
         """
         store a model model to fit at the position id of the fit engine
         """
-        self._engine.set_model(model, id, pars, constraints)
+        self._engine.set_model(model, id, pars, constraints, data=data)
    
     def set_data(self, data, id, smearer=None, qmin=None, qmax=None):
Index: park_integration/src/sans/fit/ParkFitting.py
===================================================================
--- park_integration/src/sans/fit/ParkFitting.py	(revision 1cff677a3a71b743f65bf36881980f15370633c3)
+++ park_integration/src/sans/fit/ParkFitting.py	(revision 634ca14007e5d669c64e5eae63fe40bf8e30cb34)
@@ -24,4 +24,9 @@
 from sans.fit.AbstractFitEngine import FitEngine
   
+class SansFitResult(fitresult.FitResult):
+    def __init__(self, *args, **kwrds):
+        fitresult.FitResult.__init__(self, *args, **kwrds)
+        self.inputs = []
+        
 class SansFitSimplex(FitSimplex):
     """
@@ -57,5 +62,6 @@
         fitpars = [SansFitParameter(pars[i].name,pars[i].range,v, pars[i].model, pars[i].data)
                    for i,v in enumerate(result.x)]
-        res = fitresult.FitResult(fitpars, result.calls, result.fx)
+        res = SansFitResult(fitpars, result.calls, result.fx)
+        res.inputs = [(pars[i].model, pars[i].data) for i,v in enumerate(result.x)]
         # Compute the parameter uncertainties from the jacobian
         res.calc_cov(fitness)
@@ -384,5 +390,9 @@
         self.problem.all_results(result)
         
-        #print "park------", self.problem.parts
+        #print "park------", result.inputs
+        #for (model, data) in result.inputs:
+        #    print model.name, data.name
+        #for p in result.parameters:
+        #    print "simul ----", p , p.__class__, p.model.name, p.data.name
    
         if result != None:
Index: park_integration/src/sans/fit/ScipyFitting.py
===================================================================
--- park_integration/src/sans/fit/ScipyFitting.py	(revision 82bff0be6a47776c8ea3f7cb0341c697781bbd24)
+++ park_integration/src/sans/fit/ScipyFitting.py	(revision 634ca14007e5d669c64e5eae63fe40bf8e30cb34)
@@ -14,4 +14,5 @@
 from sans.fit.AbstractFitEngine import SansAssembly
 from sans.fit.AbstractFitEngine import FitAbort
+from sans.fit.AbstractFitEngine import Model
 IS_MAC = True
 if sys.platform.count("win32") > 0:
@@ -22,5 +23,5 @@
     Storing fit result
     """
-    def __init__(self, model=None, param_list=None):
+    def __init__(self, model=None, param_list=None, data=None):
         self.calls = None
         self.fitness = None
@@ -34,7 +35,12 @@
         self.parameters = None
         self.is_mac = IS_MAC
+        if issubclass(model.__class__, Model):
+            model = model.model
         self.model = model
+        self.data = data
         self.param_list = param_list
         self.iterations = 0
+        
+        self.inputs = [(self.model, self.data)]
      
     def set_model(self, model):
@@ -139,5 +145,5 @@
         self._check_param_range(model)
         
-        result = fitresult(model=model, param_list=self.param_list)
+        result = fitresult(model=model, data=data.sans_data, param_list=self.param_list)
         if handler is not None:
             handler.set_result(result=result)
@@ -182,4 +188,5 @@
             result.pvec = out
             result.success = success
+            print "scipy", result.inputs
             if q is not None:
                 q.put(result)
