diff --git a/rawEx/fit/specular/Specular1Par.py b/rawEx/fit/specular/Specular1Par.py
index eba7d085bed8e99faf09a3c35872c2ae9bdb0a95..27ebf6eb8cccdac291e67a7b5f25841c07e9f2fd 100755
--- a/rawEx/fit/specular/Specular1Par.py
+++ b/rawEx/fit/specular/Specular1Par.py
@@ -13,14 +13,11 @@ from bornagain import angstrom, ba_fitmonitor
 
 def load_data():
     datadir = os.getenv('BA_DATA_DIR', '')
-    data_fname = os.path.join(datadir, "specular/genx_alternating_layers.dat.gz")
+    fname = os.path.join(datadir, "specular/genx_alternating_layers.dat.gz")
 
-    expdata = np.loadtxt(data_fname, usecols=(0, 1), skiprows=3)
-
-    # convert double incident angle (degs) to incident angle (radians)
-    expdata[:, 0] *= np.pi/360
-
-    return (expdata[:, 0], expdata[:, 1])
+    raise Exception("TODO: treat data as angle(deg)")
+    flags = ba.ImportSettings1D("#", "", 1, 2)
+    return ba.readData1D(fname, ba.csv1D, flags)
 
 
 def get_sample(P):
@@ -45,7 +42,7 @@ def get_sample(P):
 
 
 def get_simulation(P):
-    scan = ba.AlphaScan(ba.ListScan("alpha (rad)", exp_x))
+    scan = ba.AlphaScan(expData.xAxis())
     scan.setWavelength(1.54*angstrom)
     sample = get_sample(P)
 
@@ -53,13 +50,13 @@ def get_simulation(P):
 
 
 if __name__ == '__main__':
-    exp_x, exp_y = load_data()
+    expData = load_data()
 
     P = ba.Parameters()
     P.add("thickness_Ti", 50*angstrom, min=10*angstrom, max=60*angstrom)
 
     fit_objective = ba.FitObjective()
-    fit_objective.addSimulationAndData(get_simulation, exp_y, 1)
+    fit_objective.addFitPair(get_simulation, expData, 1)
 
     fit_objective.initPrint(10)
     plot_observer = ba_fitmonitor.PlotterSpecular(pause=0.5)