diff --git a/auto/Examples/fit/specular/Specular1Par.py b/auto/Examples/fit/specular/Specular1Par.py
index eba7d085bed8e99faf09a3c35872c2ae9bdb0a95..2d6ee45644dfd7945b11e0a7fb96b5a946de676b 100755
--- a/auto/Examples/fit/specular/Specular1Par.py
+++ b/auto/Examples/fit/specular/Specular1Par.py
@@ -13,14 +13,10 @@ 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])
+    flags = ba.ImportSettings1D("2alpha (deg)", "#", "", 1, 2)
+    return ba.readData1D(fname, ba.csv1D, flags)
 
 
 def get_sample(P):
@@ -45,7 +41,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 +49,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)
diff --git a/auto/MiniExamples/fit/specular/Specular1Par.py b/auto/MiniExamples/fit/specular/Specular1Par.py
index eba7d085bed8e99faf09a3c35872c2ae9bdb0a95..2d6ee45644dfd7945b11e0a7fb96b5a946de676b 100755
--- a/auto/MiniExamples/fit/specular/Specular1Par.py
+++ b/auto/MiniExamples/fit/specular/Specular1Par.py
@@ -13,14 +13,10 @@ 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])
+    flags = ba.ImportSettings1D("2alpha (deg)", "#", "", 1, 2)
+    return ba.readData1D(fname, ba.csv1D, flags)
 
 
 def get_sample(P):
@@ -45,7 +41,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 +49,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)
diff --git a/rawEx/fit/specular/Specular1Par.py b/rawEx/fit/specular/Specular1Par.py
index 27ebf6eb8cccdac291e67a7b5f25841c07e9f2fd..2d6ee45644dfd7945b11e0a7fb96b5a946de676b 100755
--- a/rawEx/fit/specular/Specular1Par.py
+++ b/rawEx/fit/specular/Specular1Par.py
@@ -15,8 +15,7 @@ def load_data():
     datadir = os.getenv('BA_DATA_DIR', '')
     fname = os.path.join(datadir, "specular/genx_alternating_layers.dat.gz")
 
-    raise Exception("TODO: treat data as angle(deg)")
-    flags = ba.ImportSettings1D("#", "", 1, 2)
+    flags = ba.ImportSettings1D("2alpha (deg)", "#", "", 1, 2)
     return ba.readData1D(fname, ba.csv1D, flags)