diff --git a/Doc/FFCatalog/fig/ff2/sim_Cylinder.py b/Doc/FFCatalog/fig/ff2/sim_Cylinder.py
index 85ab73315d1138889719bd557d7e1653e7cacd93..c1de1ef944cecc4f6b20737f562f9f88479cb8ca 100755
--- a/Doc/FFCatalog/fig/ff2/sim_Cylinder.py
+++ b/Doc/FFCatalog/fig/ff2/sim_Cylinder.py
@@ -6,7 +6,7 @@ import bornagain as ba
 from bornagain import nm, deg
 import bornplot as bp
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 4
 results = []
 for i in range(n):
diff --git a/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_asy.py b/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_asy.py
index 001788be9722ad1d331b4cc5b296676853b1ccc8..272ec9e0dc5402312a5b464d099a64fd4e511205 100755
--- a/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_asy.py
+++ b/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_asy.py
@@ -7,7 +7,7 @@ from bornagain import nm, deg
 import bornplot as bp
 import math
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 3
 results = []
 edge = 3.2
diff --git a/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_sym.py b/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_sym.py
index ae43cfd7a12cb541e6bf38b58b1525558f8dfeba..faf46f163b9c33d75ea395a7bbd0a85b6d4de681 100755
--- a/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_sym.py
+++ b/Doc/FFCatalog/fig/ff2/sim_Dodecahedron_sym.py
@@ -7,7 +7,7 @@ from bornagain import nm, deg
 import bornplot as bp
 import math
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 3
 results = []
 edge = 3.2
diff --git a/Doc/FFCatalog/fig/ff2/sim_Icosahedron_asy.py b/Doc/FFCatalog/fig/ff2/sim_Icosahedron_asy.py
index da381b5fa3808132cfb32d02770c4bc9b761ced4..5454e83877af29db6b8dd515a9a4727ffa529715 100755
--- a/Doc/FFCatalog/fig/ff2/sim_Icosahedron_asy.py
+++ b/Doc/FFCatalog/fig/ff2/sim_Icosahedron_asy.py
@@ -7,7 +7,7 @@ from bornagain import nm, deg
 import bornplot as bp
 import math
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 3
 results = []
 edge = 4.8
diff --git a/Doc/FFCatalog/fig/ff2/sim_Icosahedron_sym.py b/Doc/FFCatalog/fig/ff2/sim_Icosahedron_sym.py
index 7580915e3c110752c4889dc5a8c98abb96bf5535..9dc89d2fbd2a300e0ba792a98e5ea7e11957e8af 100755
--- a/Doc/FFCatalog/fig/ff2/sim_Icosahedron_sym.py
+++ b/Doc/FFCatalog/fig/ff2/sim_Icosahedron_sym.py
@@ -7,7 +7,7 @@ from bornagain import nm, deg
 import bornplot as bp
 import math
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 3
 results = []
 edge = 4.8
diff --git a/Doc/FFCatalog/fig/ff2/sim_SawtoothRipple.py b/Doc/FFCatalog/fig/ff2/sim_SawtoothRipple.py
index 1dbca35a7d72ac5772b3532bbc396a600a49d186..046e022e83fa49c6ad79d042cc86eec1a1bdcc61 100755
--- a/Doc/FFCatalog/fig/ff2/sim_SawtoothRipple.py
+++ b/Doc/FFCatalog/fig/ff2/sim_SawtoothRipple.py
@@ -6,7 +6,7 @@ import bornagain as ba
 from bornagain import nm, deg
 import bornplot as bp
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 4
 results = []
 for i in range(n):
diff --git a/Doc/FFCatalog/fig/ff2/sim_Tetrahedron.py b/Doc/FFCatalog/fig/ff2/sim_Tetrahedron.py
index fac19a66a123b10df364646f9bf8ca9860a58c50..9c5db5ecba1e264868763713b4595ef7679cd615 100755
--- a/Doc/FFCatalog/fig/ff2/sim_Tetrahedron.py
+++ b/Doc/FFCatalog/fig/ff2/sim_Tetrahedron.py
@@ -6,7 +6,7 @@ import bornagain as ba
 from bornagain import nm, deg
 import bornplot as bp
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 n = 4
 results = []
 for i in range(n):
diff --git a/Doc/FFCatalog/fig/ff2/sim_demo_4quadrants.py b/Doc/FFCatalog/fig/ff2/sim_demo_4quadrants.py
index 476d2b6c234a11d34412ab94a6953384b3b8b5ce..fe838b63ab55ed1359ccecbc2a4c0c88e936c635 100755
--- a/Doc/FFCatalog/fig/ff2/sim_demo_4quadrants.py
+++ b/Doc/FFCatalog/fig/ff2/sim_demo_4quadrants.py
@@ -6,7 +6,7 @@ import bornagain as ba
 from bornagain import nm, deg
 import bornplot as bp
 
-det = ba.SphericalDetector(200, 10*deg, 0*deg, 0*deg)
+det = ba.SphericalDetector(200, 10*deg, 0, 0)
 pars = [0, 5, 10, 20]
 n = len(pars)
 results = []
diff --git a/Examples/fit51_Basic/basic_fitting_tutorial.py b/Examples/fit51_Basic/basic_fitting_tutorial.py
index a9929dda19e2891b1c1da7376b720de219622145..1d9a980649e867ad50539b5336a835123c16738a 100644
--- a/Examples/fit51_Basic/basic_fitting_tutorial.py
+++ b/Examples/fit51_Basic/basic_fitting_tutorial.py
@@ -48,9 +48,8 @@ def get_simulation(params):
     Returns a GISAXS simulation with beam and detector defined
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
-                                     2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0, 2*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit51_Basic/consecutive_fitting.py b/Examples/fit51_Basic/consecutive_fitting.py
index 42602822eb21d7a2c01f82f7ab4fa9dacf8ba982..69ef8f690d316b6b6fc5ceb086962d354e12bd1a 100644
--- a/Examples/fit51_Basic/consecutive_fitting.py
+++ b/Examples/fit51_Basic/consecutive_fitting.py
@@ -45,9 +45,8 @@ def get_simulation(params):
     Returns a GISAXS simulation with beam and detector defined.
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, 0*deg, 2*deg, 100, 0*deg,
-                                     2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setDetectorParameters(100, 0, 2*deg, 100, 0, 2*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit51_Basic/minimal_fit_example.py b/Examples/fit51_Basic/minimal_fit_example.py
index c4d26c6cad4a1f238b68912be72843a9599accb9..e28de75582b684d07830be5be68bcb8a7777e5d5 100644
--- a/Examples/fit51_Basic/minimal_fit_example.py
+++ b/Examples/fit51_Basic/minimal_fit_example.py
@@ -21,9 +21,8 @@ def get_simulation(params):
     multi_layer.addLayer(layer)
 
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
-                                     2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0, 2*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.setSample(multi_layer)
 
     return simulation
diff --git a/Examples/fit51_Basic/minimizer_settings.py b/Examples/fit51_Basic/minimizer_settings.py
index 3ed3fdd051ba10765ab5b8e9cf7934ab5670e86d..626046b1bfb602557401094321151975a636d2c5 100644
--- a/Examples/fit51_Basic/minimizer_settings.py
+++ b/Examples/fit51_Basic/minimizer_settings.py
@@ -46,9 +46,8 @@ def get_simulation(params):
     Returns a GISAXS simulation with beam and detector defined
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
-                                     2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0, 2*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit52_Advanced/find_background.py b/Examples/fit52_Advanced/find_background.py
index d1fecc2f91dac3cc2e2fd330435008adaf546296..05fe2b589dcd44e569aafcad15edd652de511550 100644
--- a/Examples/fit52_Advanced/find_background.py
+++ b/Examples/fit52_Advanced/find_background.py
@@ -48,9 +48,9 @@ def get_simulation(params):
     scale = params["scale"]
 
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e12*scale)
     simulation.setBackground(ba.ConstantBackground(background))
     simulation.setSample(get_sample(params))
diff --git a/Examples/fit52_Advanced/fit_along_slices.py b/Examples/fit52_Advanced/fit_along_slices.py
index ceabd0f0140282140dc9c88fc6ab9d01207ac3f8..78242d985812101a164f3c50ec86eb6a2d99fb03 100644
--- a/Examples/fit52_Advanced/fit_along_slices.py
+++ b/Examples/fit52_Advanced/fit_along_slices.py
@@ -43,9 +43,9 @@ def get_simulation(params, add_masks=True):
     Create and return GISAXS simulation with beam and detector defined
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     if add_masks:
diff --git a/Examples/fit52_Advanced/fit_with_masks.py b/Examples/fit52_Advanced/fit_with_masks.py
index fafea2655a8e7a0170cd4b7bfbfed6ca24d2ddbf..b8191e23801caebd3a55fe074aa09f5b76f08067 100644
--- a/Examples/fit52_Advanced/fit_with_masks.py
+++ b/Examples/fit52_Advanced/fit_with_masks.py
@@ -42,9 +42,9 @@ def get_simulation(params, add_masks=True):
     Create and return GISAXS simulation with beam and detector defined
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
 
@@ -90,7 +90,7 @@ def add_mask_to_simulation(simulation):
     simulation.maskAll()
 
     # set mask to simulate pacman's head
-    simulation.addMask(ba.Ellipse(0*deg, 1*deg, 0.5*deg, 0.5*deg), False)
+    simulation.addMask(ba.Ellipse(0, 1*deg, 0.5*deg, 0.5*deg), False)
 
     # set mask for pacman's eye
     simulation.addMask(ba.Ellipse(0.11*deg, 1.25*deg, 0.05*deg, 0.05*deg), True)
diff --git a/Examples/fit52_Advanced/multiple_datasets.py b/Examples/fit52_Advanced/multiple_datasets.py
index 7c107d699004ec74261cf3249c9f238a414c50d6..7180fce19a56bf0118e1cee93d736bcebd72db8c 100644
--- a/Examples/fit52_Advanced/multiple_datasets.py
+++ b/Examples/fit52_Advanced/multiple_datasets.py
@@ -45,9 +45,9 @@ def get_simulation(params):
     incident_angle = params["incident_angle"]
 
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(50, -1.5*deg, 1.5*deg, 50, 0*deg,
+    simulation.setDetectorParameters(50, -1.5*deg, 1.5*deg, 50, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, incident_angle, 0*deg)
+    simulation.setBeamParameters(1*angstrom, incident_angle, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit53_CustomObjective/custom_objective_function.py b/Examples/fit53_CustomObjective/custom_objective_function.py
index 5843a202705166c2a2dc604aae165e245671ad72..35179a58aec1040b30283e562b4a1df221976755 100644
--- a/Examples/fit53_CustomObjective/custom_objective_function.py
+++ b/Examples/fit53_CustomObjective/custom_objective_function.py
@@ -73,9 +73,9 @@ def get_simulation(params):
     Create and return GISAXS simulation with beam and detector defined.
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit54_ExternalMinimizer/lmfit_basics.py b/Examples/fit54_ExternalMinimizer/lmfit_basics.py
index d67b8899e09bc6df0c8cc1d02f8d1b53460224fa..3a4c3a13f857e55af2b9bed6928f158754e6c8d0 100644
--- a/Examples/fit54_ExternalMinimizer/lmfit_basics.py
+++ b/Examples/fit54_ExternalMinimizer/lmfit_basics.py
@@ -47,9 +47,9 @@ def get_simulation(params):
     Create and return GISAXS simulation with beam and detector defined
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit54_ExternalMinimizer/lmfit_with_plotting.py b/Examples/fit54_ExternalMinimizer/lmfit_with_plotting.py
index ca5b4545534f32bd01e55305cb17ef3210b2529f..73d680d14af5aa2028d4a9f716c3a89d0074ba5b 100644
--- a/Examples/fit54_ExternalMinimizer/lmfit_with_plotting.py
+++ b/Examples/fit54_ExternalMinimizer/lmfit_with_plotting.py
@@ -28,7 +28,7 @@ def get_sample(params):
     particle_layout.addParticle(sphere)
 
     interference = ba.InterferenceFunction2DLattice(
-        ba.HexagonalLattice2D(lattice_length, 0*deg))
+        ba.HexagonalLattice2D(lattice_length, 0))
     pdf = ba.FTDecayFunction2DCauchy(10*nm, 10*nm, 0)
     interference.setDecayFunction(pdf)
 
@@ -48,9 +48,9 @@ def get_simulation(params):
     Create and return GISAXS simulation with beam and detector defined
     """
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0,
                                      2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setIntensity(1e+08)
     simulation.setSample(get_sample(params))
     return simulation
diff --git a/Examples/fit61_Galaxi/sample_builder.py b/Examples/fit61_Galaxi/sample_builder.py
old mode 100644
new mode 100755
index 13cf6a5aeb47fdbcc5d91a93673e858a20fbf960..d9fe9b45b6407735fe5607275f2d7dc53ff8422f
--- a/Examples/fit61_Galaxi/sample_builder.py
+++ b/Examples/fit61_Galaxi/sample_builder.py
@@ -55,7 +55,7 @@ class SampleBuilder:
         sphere_ff = ba.FormFactorFullSphere(self.radius)
 
         sphere = ba.Particle(m_Ag, sphere_ff)
-        position = ba.kvector_t(0*ba.nm, 0*ba.nm, -1*self.hmdso_thickness)
+        position = ba.kvector_t(0, 0, -1*self.hmdso_thickness)
         sphere.setPosition(position)
         ln_distr = ba.DistributionLogNormal(self.radius, self.sigma)
         par_distr = ba.ParameterDistribution(
diff --git a/Examples/scatter2d/ApproximationDA.py b/Examples/scatter2d/ApproximationDA.py
index 06be7b3803d323232575df00162a979d6f88646d..5dba8e1c31ea8df2c18008ffcbdf32063ebad061 100644
--- a/Examples/scatter2d/ApproximationDA.py
+++ b/Examples/scatter2d/ApproximationDA.py
@@ -52,7 +52,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(200, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
diff --git a/Examples/scatter2d/ApproximationLMA.py b/Examples/scatter2d/ApproximationLMA.py
index ec5ebc715e877d42527c4b6c36dbbd59a2f26839..eef385d236e43bf3321ef1b2ecac034630470171 100644
--- a/Examples/scatter2d/ApproximationLMA.py
+++ b/Examples/scatter2d/ApproximationLMA.py
@@ -60,7 +60,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(200, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
diff --git a/Examples/scatter2d/ApproximationSSCA.py b/Examples/scatter2d/ApproximationSSCA.py
index 04a682940e9f00c882e256191389b67f4a880296..26579209cdb6329af8051725391da63ce897dd52 100644
--- a/Examples/scatter2d/ApproximationSSCA.py
+++ b/Examples/scatter2d/ApproximationSSCA.py
@@ -53,7 +53,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(200, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
diff --git a/Examples/scatter2d/BeamDivergence.py b/Examples/scatter2d/BeamDivergence.py
index 1c448d47a3d92b81c42b82c594d8fa4a1fba570e..0e9fed1d8bd54f03c96fe0ffdbc506333d1bf57a 100644
--- a/Examples/scatter2d/BeamDivergence.py
+++ b/Examples/scatter2d/BeamDivergence.py
@@ -42,7 +42,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(100, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     distr_1 = ba.DistributionLogNormal(0.1*nm, 0.1)
@@ -50,7 +50,7 @@ def get_simulation(sample):
     distr_2 = ba.DistributionGaussian(0.2*deg, 0.1*deg)
     simulation.addParameterDistribution("*/Beam/InclinationAngle", distr_2, 5,
                                         0)
-    distr_3 = ba.DistributionGaussian(0*deg, 0.1*deg)
+    distr_3 = ba.DistributionGaussian(0, 0.1*deg)
     simulation.addParameterDistribution("*/Beam/AzimuthalAngle", distr_3, 5,
                                         0)
     return simulation
diff --git a/Examples/scatter2d/BiMaterialCylinders.py b/Examples/scatter2d/BiMaterialCylinders.py
index 81992c7e5e31eb62460f6405e36ceaacd5d64b5c..98e31ac65ed655d7c1c174e9fa406930b7949cce 100755
--- a/Examples/scatter2d/BiMaterialCylinders.py
+++ b/Examples/scatter2d/BiMaterialCylinders.py
@@ -55,8 +55,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1e9, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(100, 2*deg, 0*deg, 1*deg)
+    beam = ba.Beam(1e9, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(100, 2*deg, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/BoxesWithSpecularPeak.py b/Examples/scatter2d/BoxesWithSpecularPeak.py
index 060f300eb956cc6cb48ba4d9b7d7be248a82f83e..b5c486190beffb69d5c44f3db8b5089141a8cb6b 100644
--- a/Examples/scatter2d/BoxesWithSpecularPeak.py
+++ b/Examples/scatter2d/BoxesWithSpecularPeak.py
@@ -23,11 +23,11 @@ def get_sample():
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(8*nm, 8*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(8*nm, 8*nm, 90*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
-    iff_pdf = ba.FTDecayFunction2DCauchy(100*nm, 100*nm, 0*deg)
+    iff_pdf = ba.FTDecayFunction2DCauchy(100*nm, 100*nm, 0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -51,8 +51,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(101, -2*deg, 2*deg, 101, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(101, -2*deg, 2*deg, 101, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     simulation.getOptions().setUseAvgMaterials(True)
     simulation.getOptions().setIncludeSpecular(True)
diff --git a/Examples/scatter2d/BuriedParticles.py b/Examples/scatter2d/BuriedParticles.py
index 5e9cf456be169bea3898b07c8b549917262e83ed..85ee794af1de9cd832b54a9db25c456fa59a1974 100644
--- a/Examples/scatter2d/BuriedParticles.py
+++ b/Examples/scatter2d/BuriedParticles.py
@@ -24,7 +24,7 @@ def get_sample():
 
     # Define particles
     particle = ba.Particle(material_Particle, ff)
-    particle_position = kvector_t(0*nm, 0*nm, -25.2*nm)
+    particle_position = kvector_t(0, 0, -25.2*nm)
     particle.setPosition(particle_position)
 
     # Define particle layouts
@@ -49,8 +49,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.15*nm, ba.Direction(0.15*deg, 0*deg))
-    detector = ba.SphericalDetector(200, 2*deg, 0*deg, 1*deg)
+    beam = ba.Beam(1, 0.15*nm, ba.Direction(0.15*deg, 0))
+    detector = ba.SphericalDetector(200, 2*deg, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/ConstantBackground.py b/Examples/scatter2d/ConstantBackground.py
index fdd1bb10854cf4e49ea4d58a1ba41e9851f17c86..a17cf62eeec3ff6a39ce7f7247d4d5e19a526b30 100644
--- a/Examples/scatter2d/ConstantBackground.py
+++ b/Examples/scatter2d/ConstantBackground.py
@@ -42,7 +42,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1000000, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1000000, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(100, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     background = ba.ConstantBackground(1.0e+03)
diff --git a/Examples/scatter2d/CoreShellNanoparticles.py b/Examples/scatter2d/CoreShellNanoparticles.py
index c273d42b9863cc1d0fe83f3238d7ca748f95d817..e16c4175d7584593860f4fe8912fe1696d491a61 100644
--- a/Examples/scatter2d/CoreShellNanoparticles.py
+++ b/Examples/scatter2d/CoreShellNanoparticles.py
@@ -49,8 +49,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, 2*deg, 0*deg, 1*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, 2*deg, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/CorrelatedRoughness.py b/Examples/scatter2d/CorrelatedRoughness.py
index 9ed7e4325311c0b3e92148052a24bb92a093ddc3..cf8529bba5b659a216d06974ba2b83ce5e4879ef 100644
--- a/Examples/scatter2d/CorrelatedRoughness.py
+++ b/Examples/scatter2d/CorrelatedRoughness.py
@@ -44,8 +44,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(500000000000, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, 1*deg, 0*deg, 0.5*deg)
+    beam = ba.Beam(500000000000, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, 1*deg, 0, 0.5*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/CosineRipplesAtRectLattice.py b/Examples/scatter2d/CosineRipplesAtRectLattice.py
index e870a6e280ec2487f09a5cf38d3f567b2910fb34..3a7d251956f9eeb264a518842151ffb0b4087862 100644
--- a/Examples/scatter2d/CosineRipplesAtRectLattice.py
+++ b/Examples/scatter2d/CosineRipplesAtRectLattice.py
@@ -24,11 +24,11 @@ def get_sample():
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(200*nm, 50*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(200*nm, 50*nm, 90*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
-    iff_pdf = ba.FTDecayFunction2DCauchy(160*nm, 16*nm, 0*deg)
+    iff_pdf = ba.FTDecayFunction2DCauchy(160*nm, 16*nm, 0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -52,8 +52,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.16*nm, ba.Direction(0.3*deg, 0*deg))
-    detector = ba.SphericalDetector(100, -1.5*deg, 1.5*deg, 100, 0*deg, 2.5*deg)
+    beam = ba.Beam(1, 0.16*nm, ba.Direction(0.3*deg, 0))
+    detector = ba.SphericalDetector(100, -1.5*deg, 1.5*deg, 100, 0, 2.5*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/Cylinders.py b/Examples/scatter2d/Cylinders.py
index d6f8dfdec03bc8792d0f7f57189e22f42655ad46..6006762bdfbe134271864af887ed36efc40e49a0 100755
--- a/Examples/scatter2d/Cylinders.py
+++ b/Examples/scatter2d/Cylinders.py
@@ -39,11 +39,11 @@ def get_simulation(sample):
     # Define beam
     wavelength = 0.1*nm
     alpha_i = 0.2*deg
-    beam = ba.Beam(1, wavelength, ba.Direction(alpha_i, 0*deg))
+    beam = ba.Beam(1, wavelength, ba.Direction(alpha_i, 0))
 
     # Define detector
     nPix = 200 # pixels per direction
-    detector = ba.SphericalDetector(nPix, -2*deg, 2*deg, nPix, 0*deg, 3*deg)
+    detector = ba.SphericalDetector(nPix, -2*deg, 2*deg, nPix, 0, 3*deg)
 
     return ba.GISASSimulation(beam, sample, detector)
 
diff --git a/Examples/scatter2d/CylindersAndPrisms.py b/Examples/scatter2d/CylindersAndPrisms.py
index f5d36622ccd859a485d24f8940b24eac2803efdc..7dd8148331f50878edb585b6c00d526166603cd9 100644
--- a/Examples/scatter2d/CylindersAndPrisms.py
+++ b/Examples/scatter2d/CylindersAndPrisms.py
@@ -49,8 +49,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(100, 2*deg, 0*deg, 1*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(100, 2*deg, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/CylindersInAverageLayer.py b/Examples/scatter2d/CylindersInAverageLayer.py
index e5543bee147f65971e0ee8c24aa1f14b3eb79af1..c2775c51e0596d58726d9ef24569d584f322dddb 100644
--- a/Examples/scatter2d/CylindersInAverageLayer.py
+++ b/Examples/scatter2d/CylindersInAverageLayer.py
@@ -25,7 +25,7 @@ def get_sample(cyl_height=5*nm):
 
     # interference function
     interference = ba.InterferenceFunction2DLattice(
-        ba.SquareLattice2D(15*nm, 0*deg))
+        ba.SquareLattice2D(15*nm, 0))
     pdf = ba.FTDecayFunction2DCauchy(300*nm, 300*nm, 0)
     interference.setDecayFunction(pdf)
     particle_layout.setInterferenceFunction(interference)
@@ -43,8 +43,8 @@ def get_sample(cyl_height=5*nm):
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(100, -2*deg, 2*deg, 100, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(100, -2*deg, 2*deg, 100, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     simulation.getOptions().setUseAvgMaterials(True)
     return simulation
diff --git a/Examples/scatter2d/CylindersInBA.py b/Examples/scatter2d/CylindersInBA.py
index 623f17ebc3c372b990291584401fa95c1f89df0c..649859b101339a2e29a34b8a22005e595561f77c 100755
--- a/Examples/scatter2d/CylindersInBA.py
+++ b/Examples/scatter2d/CylindersInBA.py
@@ -39,8 +39,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 3*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 3*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/CylindersWithSizeDistribution.py b/Examples/scatter2d/CylindersWithSizeDistribution.py
index cab15d672c7d12ee2ea97d3915f8a77d31d09097..ebf733b3f34a8f24da4ab0e8d46f0bd93dced5a9 100644
--- a/Examples/scatter2d/CylindersWithSizeDistribution.py
+++ b/Examples/scatter2d/CylindersWithSizeDistribution.py
@@ -46,7 +46,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(200, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
diff --git a/Examples/scatter2d/DetectorResolutionFunction.py b/Examples/scatter2d/DetectorResolutionFunction.py
index 0b81700f776eff650ce979b476833151de44361c..94ffe841f4ecbb1c0a8655bb0f1563500dbde513 100644
--- a/Examples/scatter2d/DetectorResolutionFunction.py
+++ b/Examples/scatter2d/DetectorResolutionFunction.py
@@ -42,7 +42,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(100, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     simulation.setDetectorResolutionFunction(
diff --git a/Examples/scatter2d/DodecahedraSAS.py b/Examples/scatter2d/DodecahedraSAS.py
index 32961c9125970733c8b74be83f8d11cf6af3ee4f..d95abd1ff1a092a3531c1d9aad09a7ed60cf9e8f 100755
--- a/Examples/scatter2d/DodecahedraSAS.py
+++ b/Examples/scatter2d/DodecahedraSAS.py
@@ -33,7 +33,7 @@ def get_sample():
 
 def get_simulation(sample):
     # Beam from above (perpendicular to sample):
-    beam = ba.Beam(1, 0.4*nm, ba.Direction(90*deg, 0*deg))
+    beam = ba.Beam(1, 0.4*nm, ba.Direction(90*deg, 0))
 
     # Detector opposite to source:
     detPos = 2000 # distance from sample center to detector in mm
diff --git a/Examples/scatter2d/HalfSpheresInAverageTopLayer.py b/Examples/scatter2d/HalfSpheresInAverageTopLayer.py
index 825419a89f7a8ff4719acfa392e64f74092450a1..5f463b454f1db28a36d9978e3741f3d6e841298e 100644
--- a/Examples/scatter2d/HalfSpheresInAverageTopLayer.py
+++ b/Examples/scatter2d/HalfSpheresInAverageTopLayer.py
@@ -18,17 +18,17 @@ def get_sample():
     material_Vacuum = ba.HomogeneousMaterial("Vacuum", 0, 0)
 
     # Define form factors
-    ff = ba.FormFactorTruncatedSphere(5*nm, 5*nm, 0*nm)
+    ff = ba.FormFactorTruncatedSphere(5*nm, 5*nm, 0)
 
     # Define particles
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(10*nm, 10*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(10*nm, 10*nm, 90*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
-    iff_pdf = ba.FTDecayFunction2DCauchy(100*nm, 100*nm, 0*deg)
+    iff_pdf = ba.FTDecayFunction2DCauchy(100*nm, 100*nm, 0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -53,8 +53,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(100, -2*deg, 2*deg, 100, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(100, -2*deg, 2*deg, 100, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     simulation.getOptions().setUseAvgMaterials(True)
     return simulation
diff --git a/Examples/scatter2d/HexagonalLatticesWithBasis.py b/Examples/scatter2d/HexagonalLatticesWithBasis.py
index 66f76e4836ee2b5b8d10d8bcfcdb65221b5eb4ed..8192045e3ae3af642f7819019dc9d8000bc77862 100644
--- a/Examples/scatter2d/HexagonalLatticesWithBasis.py
+++ b/Examples/scatter2d/HexagonalLatticesWithBasis.py
@@ -33,11 +33,11 @@ def get_sample():
     particle_3.addParticle(particle_2)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(20*nm, 20*nm, 120*deg, 0*deg)
+    lattice = ba.BasicLattice2D(20*nm, 20*nm, 120*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
-    iff_pdf = ba.FTDecayFunction2DCauchy(10*nm, 10*nm, 0*deg)
+    iff_pdf = ba.FTDecayFunction2DCauchy(10*nm, 10*nm, 0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -61,8 +61,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -1*deg, 1*deg, 200, 0*deg, 1*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -1*deg, 1*deg, 200, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/Interference1DRadialParaCrystal.py b/Examples/scatter2d/Interference1DRadialParaCrystal.py
index 7349d64208e909b26824f39eda04709711ee40c7..0eda4704d8a80ea63d1d081e8dab5785c50d62e3 100644
--- a/Examples/scatter2d/Interference1DRadialParaCrystal.py
+++ b/Examples/scatter2d/Interference1DRadialParaCrystal.py
@@ -48,8 +48,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/Interference2DCenteredSquareLattice.py b/Examples/scatter2d/Interference2DCenteredSquareLattice.py
index e580d0c0ec14d212d6a4556df15be0f4afd9fde5..80a249bbe4b4a630fa634ad6841efaa7759c5c88 100644
--- a/Examples/scatter2d/Interference2DCenteredSquareLattice.py
+++ b/Examples/scatter2d/Interference2DCenteredSquareLattice.py
@@ -24,7 +24,7 @@ def get_sample():
     # Define particles
     particle_1 = ba.Particle(material_Particle, ff_1)
     particle_2 = ba.Particle(material_Particle, ff_2)
-    particle_2_position = kvector_t(12.5*nm, 12.5*nm, 0*nm)
+    particle_2_position = kvector_t(12.5*nm, 12.5*nm, 0)
     particle_2.setPosition(particle_2_position)
 
     # Define composition of particles at specific positions
@@ -33,11 +33,11 @@ def get_sample():
     particle_3.addParticle(particle_2)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(25*nm, 25*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(25*nm, 25*nm, 90*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
-    iff_pdf = ba.FTDecayFunction2DCauchy(48*nm, 16*nm, 0*deg)
+    iff_pdf = ba.FTDecayFunction2DCauchy(48*nm, 16*nm, 0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -61,8 +61,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/Interference2DLatticeSumOfRotated.py b/Examples/scatter2d/Interference2DLatticeSumOfRotated.py
index f82cfa263c5907ffed2ab8add8aa9f68fc3d3c2a..7b087346fc5e10ecf07d47908b4619b81645bfb7 100644
--- a/Examples/scatter2d/Interference2DLatticeSumOfRotated.py
+++ b/Examples/scatter2d/Interference2DLatticeSumOfRotated.py
@@ -37,10 +37,10 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(100, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
-    distr_1 = ba.DistributionGate(0*deg, 240*deg)
+    distr_1 = ba.DistributionGate(0, 240*deg)
     simulation.addParameterDistribution("*/SquareLattice2D/Xi", distr_1, 3, 0)
     return simulation
 
diff --git a/Examples/scatter2d/Interference2DParaCrystal.py b/Examples/scatter2d/Interference2DParaCrystal.py
index 582581928054cbd35184ac5f578a3ccdb94180d8..f3d599205d45e43b5ee972f67b25e9bdb742817a 100644
--- a/Examples/scatter2d/Interference2DParaCrystal.py
+++ b/Examples/scatter2d/Interference2DParaCrystal.py
@@ -23,14 +23,14 @@ def get_sample():
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(10*nm, 10*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(10*nm, 10*nm, 90*deg, 0)
 
     # Define interference functions
-    iff = ba.InterferenceFunction2DParaCrystal(lattice, 0*nm, 20000*nm,
+    iff = ba.InterferenceFunction2DParaCrystal(lattice, 0, 20000*nm,
                                                20000*nm)
     iff.setIntegrationOverXi(True)
-    iff_pdf_1 = ba.FTDistribution2DCauchy(1*nm, 1*nm, 0*deg)
-    iff_pdf_2 = ba.FTDistribution2DCauchy(1*nm, 1*nm, 0*deg)
+    iff_pdf_1 = ba.FTDistribution2DCauchy(1*nm, 1*nm, 0)
+    iff_pdf_2 = ba.FTDistribution2DCauchy(1*nm, 1*nm, 0)
     iff.setProbabilityDistributions(iff_pdf_1, iff_pdf_2)
 
     # Define particle layouts
@@ -54,8 +54,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/Interference2DRotatedSquareLattice.py b/Examples/scatter2d/Interference2DRotatedSquareLattice.py
index 0f8457773ea30e526d2db05d4696eecf8a78e2ca..6e83cae2931801c0cdf3f15b795b12bbe9d74703 100644
--- a/Examples/scatter2d/Interference2DRotatedSquareLattice.py
+++ b/Examples/scatter2d/Interference2DRotatedSquareLattice.py
@@ -52,8 +52,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/Interference2DSquareFiniteLattice.py b/Examples/scatter2d/Interference2DSquareFiniteLattice.py
index 98416d68a4ce3fbe87e4d7e50bb1da50ce7b020c..fa35d7f6d42862512206dc114b0c9e84eb700131 100644
--- a/Examples/scatter2d/Interference2DSquareFiniteLattice.py
+++ b/Examples/scatter2d/Interference2DSquareFiniteLattice.py
@@ -23,7 +23,7 @@ def get_sample():
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(25*nm, 25*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(25*nm, 25*nm, 90*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunctionFinite2DLattice(lattice, 40, 40)
@@ -50,8 +50,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/MagneticSpheres.py b/Examples/scatter2d/MagneticSpheres.py
index 34c27229ee56e48e12146248f616033e9f2eadc6..ac09edd7e0f897e2d051710b6f7879f1eb680667 100644
--- a/Examples/scatter2d/MagneticSpheres.py
+++ b/Examples/scatter2d/MagneticSpheres.py
@@ -23,7 +23,7 @@ def get_sample():
 
     # Define particles
     particle = ba.Particle(material_Particle, ff)
-    particle_position = kvector_t(0*nm, 0*nm, -10*nm)
+    particle_position = kvector_t(0, 0, -10*nm)
     particle.setPosition(particle_position)
 
     # Define particle layouts
@@ -46,10 +46,10 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1e+12, 0.1*nm, ba.Direction(0.5*deg, 0*deg))
+    beam = ba.Beam(1e+12, 0.1*nm, ba.Direction(0.5*deg, 0))
     beam_polarization = kvector_t(0, 0, 1)
     beam.setPolarization(beam_polarization)
-    detector = ba.SphericalDetector(200, 6*deg, 0*deg, 3*deg)
+    detector = ba.SphericalDetector(200, 6*deg, 0, 3*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     analyzer_direction = kvector_t(0, 0, -1)
     simulation.detector().setAnalyzerProperties(analyzer_direction, 1, 0.5)
diff --git a/Examples/scatter2d/MesoCrystal.py b/Examples/scatter2d/MesoCrystal.py
index 9785a4bfe69c8768c9cbe7f94d3c62a6a93ae1df..bceecc20210ee6b4201d539bf151238214b2e03f 100644
--- a/Examples/scatter2d/MesoCrystal.py
+++ b/Examples/scatter2d/MesoCrystal.py
@@ -24,9 +24,9 @@ def get_sample():
     particle_1 = ba.Particle(material_Particle, ff_1)
 
     # Define 3D lattices
-    lattice = ba.Lattice3D(ba.kvector_t(5*nm, 0*nm, 0*nm),
-                           ba.kvector_t(0*nm, 5*nm, 0*nm),
-                           ba.kvector_t(0*nm, 0*nm, 5*nm))
+    lattice = ba.Lattice3D(ba.kvector_t(5*nm, 0, 0),
+                           ba.kvector_t(0, 5*nm, 0),
+                           ba.kvector_t(0, 0, 5*nm))
 
     # Define crystals
     crystal = ba.Crystal(particle_1, lattice)
@@ -54,8 +54,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/ParticlesCrossingInterface.py b/Examples/scatter2d/ParticlesCrossingInterface.py
index cc8e7129655d9b346175129a56861baac7ccdf0f..16d1b7c5a714b9b6784a92f55b553102d11cde8c 100644
--- a/Examples/scatter2d/ParticlesCrossingInterface.py
+++ b/Examples/scatter2d/ParticlesCrossingInterface.py
@@ -37,10 +37,10 @@ def get_sample():
 
     # Define particles
     particle_1 = ba.Particle(material_Particle, ff_1)
-    particle_1_position = kvector_t(0*nm, 0*nm, -3*nm)
+    particle_1_position = kvector_t(0, 0, -3*nm)
     particle_1.setPosition(particle_1_position)
     particle_2 = ba.Particle(material_Particle, ff_2)
-    particle_2_position = kvector_t(0*nm, 0*nm, -3*nm)
+    particle_2_position = kvector_t(0, 0, -3*nm)
     particle_2.setPosition(particle_2_position)
 
     # Define interference functions
@@ -68,8 +68,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(100, 2*deg, 0*deg, 1*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(100, 2*deg, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/RectangularGrating.py b/Examples/scatter2d/RectangularGrating.py
index f5636a0f74ff21ee34f1c22703168030895828fb..9fbe9f5a263704ffa08b8e562b24029aa341ff23 100644
--- a/Examples/scatter2d/RectangularGrating.py
+++ b/Examples/scatter2d/RectangularGrating.py
@@ -54,8 +54,8 @@ def get_sample(lattice_rotation_angle=0*deg):
 
 
 def get_simulation(sample):
-    beam = ba.Beam(100000000, 0.134*nm, ba.Direction(0.4*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -0.5*deg, 0.5*deg, 200, 0*deg, 0.6*deg)
+    beam = ba.Beam(100000000, 0.134*nm, ba.Direction(0.4*deg, 0))
+    detector = ba.SphericalDetector(200, -0.5*deg, 0.5*deg, 200, 0, 0.6*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     simulation.getOptions().setMonteCarloIntegration(True, 100)
     return simulation
diff --git a/Examples/scatter2d/RotatedPyramids.py b/Examples/scatter2d/RotatedPyramids.py
index ae646f9978c6b6c603457fc483142d4b2d41adbc..7cac1edcde4440fdca49a061beceb24371f838ee 100644
--- a/Examples/scatter2d/RotatedPyramids.py
+++ b/Examples/scatter2d/RotatedPyramids.py
@@ -44,8 +44,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/SpheresAtHexLattice.py b/Examples/scatter2d/SpheresAtHexLattice.py
index 77a52d28a4b45e932203b3e4eb4a05c592dd316c..0ec60fbd2f3f0fbeded03c6cb17a4491f382b02d 100644
--- a/Examples/scatter2d/SpheresAtHexLattice.py
+++ b/Examples/scatter2d/SpheresAtHexLattice.py
@@ -24,11 +24,11 @@ def get_sample():
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(20*nm, 20*nm, 120*deg, 0*deg)
+    lattice = ba.BasicLattice2D(20*nm, 20*nm, 120*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
-    iff_pdf = ba.FTDecayFunction2DCauchy(10*nm, 10*nm, 0*deg)
+    iff_pdf = ba.FTDecayFunction2DCauchy(10*nm, 10*nm, 0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -52,8 +52,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -1*deg, 1*deg, 200, 0*deg, 1*deg)
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
+    detector = ba.SphericalDetector(200, -1*deg, 1*deg, 200, 0, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/TriangularRipple.py b/Examples/scatter2d/TriangularRipple.py
index 8f9c0fd705d76739eaa7392e9e6905b86e3b44cb..dbc832090f50895854048a4cca4ab372b59a61be 100644
--- a/Examples/scatter2d/TriangularRipple.py
+++ b/Examples/scatter2d/TriangularRipple.py
@@ -24,12 +24,12 @@ def get_sample():
     particle = ba.Particle(material_Particle, ff)
 
     # Define 2D lattices
-    lattice = ba.BasicLattice2D(200*nm, 50*nm, 90*deg, 0*deg)
+    lattice = ba.BasicLattice2D(200*nm, 50*nm, 90*deg, 0)
 
     # Define interference functions
     iff = ba.InterferenceFunction2DLattice(lattice)
     iff_pdf = ba.FTDecayFunction2DGauss(159.154943092*nm, 15.9154943092*nm,
-                                        0*deg)
+                                        0)
     iff.setDecayFunction(iff_pdf)
 
     # Define particle layouts
@@ -53,8 +53,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.16*nm, ba.Direction(0.3*deg, 0*deg))
-    detector = ba.SphericalDetector(200, -1.5*deg, 1.5*deg, 200, 0*deg, 2.5*deg)
+    beam = ba.Beam(1, 0.16*nm, ba.Direction(0.3*deg, 0))
+    detector = ba.SphericalDetector(200, -1.5*deg, 1.5*deg, 200, 0, 2.5*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
 
diff --git a/Examples/scatter2d/TwoTypesOfCylindersWithSizeDistribution.py b/Examples/scatter2d/TwoTypesOfCylindersWithSizeDistribution.py
index 48b1a5b7ae5fb7a3b79b000cae90ccd295bd2fa0..00e842cd70fb4ca9f1512e32091e3105a1746717 100644
--- a/Examples/scatter2d/TwoTypesOfCylindersWithSizeDistribution.py
+++ b/Examples/scatter2d/TwoTypesOfCylindersWithSizeDistribution.py
@@ -55,7 +55,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 0.1*nm, ba.Direction(0.2*deg, 0))
     detector = ba.SphericalDetector(200, 2*deg, 1*deg, 1*deg)
     simulation = ba.GISASSimulation(beam, sample, detector)
     return simulation
diff --git a/Examples/specular/AlternatingLayers.py b/Examples/specular/AlternatingLayers.py
index d008a61e363d1edd3267c73d9edd25abaedfc52f..9b957efe501cf00317797ce852b41b93a66d27ed 100755
--- a/Examples/specular/AlternatingLayers.py
+++ b/Examples/specular/AlternatingLayers.py
@@ -33,7 +33,7 @@ def get_sample():
 
 def get_simulation(sample, scan_size=500):
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0*deg, 2*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0, 2*deg)
     simulation.setScan(scan)
     simulation.setSample(sample)
     return simulation
diff --git a/Examples/specular/BeamAngularDivergence.py b/Examples/specular/BeamAngularDivergence.py
old mode 100644
new mode 100755
index f4d19657e32ba027db29dff57a5dab2435d74c26..8c6a75c04b01758559eeb8e05b3b4324c1cb5598
--- a/Examples/specular/BeamAngularDivergence.py
+++ b/Examples/specular/BeamAngularDivergence.py
@@ -1,23 +1,22 @@
 #!/usr/bin/env python3
 """
 An example of taking into account beam angular divergence
-and beam footprint correction in reflectometry calculations
-with BornAgain.
-
+and beam footprint correction in reflectometry calculations.
 """
 import numpy as np
 import bornagain as ba
+from bornagain import angstrom, deg
 from os import path
 from matplotlib import pyplot as plt
 
 # input parameters
-wavelength = 1.54*ba.angstrom
-alpha_i_min = 0*ba.deg  # min incident angle, deg
-alpha_i_max = 2*ba.deg  # max incident angle, rad
+wavelength = 1.54*angstrom
+alpha_i_min = 0      # min incident angle, deg
+alpha_i_max = 2*deg  # max incident angle, rad
 beam_sample_ratio = 0.01  # beam-to-sample size ratio
 
 # convolution parameters
-d_ang = 0.01*ba.deg  # spread width for incident angle
+d_ang = 0.01*deg  # spread width for incident angle
 n_sig = 3  # number of sigmas to convolve over
 n_points = 25  # number of points to convolve over
 
@@ -27,10 +26,10 @@ si_sld_real = 2.0704e-06  # \AA^{-2}
 n_repetitions = 10
 # Ni
 ni_sld_real = 9.4245e-06  # \AA^{-2}
-d_ni = 70*ba.angstrom
+d_ni = 70*angstrom
 # Ti
 ti_sld_real = -1.9493e-06  # \AA^{-2}
-d_ti = 30*ba.angstrom
+d_ti = 30*angstrom
 
 
 def get_sample():
diff --git a/Examples/specular/BeamFullDivergence.py b/Examples/specular/BeamFullDivergence.py
old mode 100644
new mode 100755
index 38706183bc01419536e950bd308d007c587d9a21..382342164b215be0c67ecae95da3a6bd939c8068
--- a/Examples/specular/BeamFullDivergence.py
+++ b/Examples/specular/BeamFullDivergence.py
@@ -2,18 +2,18 @@
 """
 An example of taking into account beam angular and wavelength
 divergence in reflectometry calculations with BornAgain.
-
 """
 import bornagain as ba
+from bornagain import angstrom, deg
 
 # input parameters
-wavelength = 1.54*ba.angstrom
-alpha_i_min = 0*ba.deg  # min incident angle, deg
-alpha_i_max = 2*ba.deg  # max incident angle, rad
+wavelength = 1.54*angstrom
+alpha_i_min = 0     # min incident angle, deg
+alpha_i_max = 2*deg # max incident angle, rad
 
 # convolution parameters
 d_wl = 0.01*wavelength  # spread width for wavelength
-d_ang = 0.01*ba.deg  # spread width for incident angle
+d_ang = 0.01*deg  # spread width for incident angle
 n_sig = 3  # number of sigmas to convolve over
 n_points = 25  # number of points to convolve over
 
@@ -23,10 +23,10 @@ si_sld_real = 2.0704e-06  # \AA^{-2}
 n_repetitions = 10
 # Ni
 ni_sld_real = 9.4245e-06  # \AA^{-2}
-d_ni = 70*ba.angstrom  # ni layer thickness (nm)
+d_ni = 70*angstrom  # ni layer thickness (nm)
 # Ti
 ti_sld_real = -1.9493e-06  # \AA^{-2}
-d_ti = 30*ba.angstrom  # ti layer thickness (nm)
+d_ti = 30*angstrom  # ti layer thickness (nm)
 
 
 def get_sample():
diff --git a/Examples/varia/AccessingSimulationResults.py b/Examples/varia/AccessingSimulationResults.py
index 332b0172168d154cae3d82b423907901ba07dc67..d5ef91e5622d2265619b577e67b077927965fd0f 100644
--- a/Examples/varia/AccessingSimulationResults.py
+++ b/Examples/varia/AccessingSimulationResults.py
@@ -51,8 +51,8 @@ def get_simulation(sample):
     """
     Returns a GISAXS simulation with beam and detector defined.
     """
-    beam = ba.Beam(1e5, 1*angstrom, ba.Direction(0.2*deg, 0*deg))
-    det = ba.SphericalDetector(201, -2*deg, 2*deg, 201, 0*deg, 2*deg)
+    beam = ba.Beam(1e5, 1*angstrom, ba.Direction(0.2*deg, 0))
+    det = ba.SphericalDetector(201, -2*deg, 2*deg, 201, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, det)
     return simulation
 
diff --git a/Examples/varia/AllFormFactorsAvailable.py b/Examples/varia/AllFormFactorsAvailable.py
index 6cac90a8be3d6759725344255332f91993a956cd..53d12a0218396f2e77873bad8d09d30f266c3539 100644
--- a/Examples/varia/AllFormFactorsAvailable.py
+++ b/Examples/varia/AllFormFactorsAvailable.py
@@ -65,7 +65,7 @@ def get_simulation(sample):
     simulation = ba.GISASSimulation()
     simulation.setDetectorParameters(100, phi_min*deg, phi_max*deg, 100,
                                      alpha_min*deg, alpha_max*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.setSample(sample)
     return simulation
 
diff --git a/Examples/varia/AxesInDifferentUnits.py b/Examples/varia/AxesInDifferentUnits.py
index 41ef48517e9835d1d80b144483d06d671d5188b4..b6ea0eb5ab69f377f640b19ad6a78379abea23f5 100644
--- a/Examples/varia/AxesInDifferentUnits.py
+++ b/Examples/varia/AxesInDifferentUnits.py
@@ -46,7 +46,7 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0*deg))
+    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0))
 
     # PILATUS detector
     detector_distance = 2000.0  # in mm
@@ -81,34 +81,34 @@ def plot(result):
     # default units for rectangular detector are millimeters
 
     ba_plot.plot_colormap(result,
-                     title="In default units",
-                     xlabel=r'$X_{mm}$',
-                     ylabel=r'$Y_{mm}$',
-                     zlabel=None)
+                          title="In default units",
+                          xlabel=r'$X_{mm}$',
+                          ylabel=r'$Y_{mm}$',
+                          zlabel=None)
 
     plt.subplot(2, 2, 2)
     ba_plot.plot_colormap(result,
-                     units=ba.Axes.NBINS,
-                     title="In number of bins",
-                     xlabel=r'$X_{nbins}$',
-                     ylabel=r'$Y_{nbins}$',
-                     zlabel=None)
+                          units=ba.Axes.NBINS,
+                          title="In number of bins",
+                          xlabel=r'$X_{nbins}$',
+                          ylabel=r'$Y_{nbins}$',
+                          zlabel=None)
 
     plt.subplot(2, 2, 3)
     ba_plot.plot_colormap(result,
-                     units=ba.Axes.DEGREES,
-                     title="In degs",
-                     xlabel=r'$\phi_f ^{\circ}$',
-                     ylabel=r'$\alpha_f ^{\circ}$',
-                     zlabel=None)
+                          units=ba.Axes.DEGREES,
+                          title="In degs",
+                          xlabel=r'$\phi_f ^{\circ}$',
+                          ylabel=r'$\alpha_f ^{\circ}$',
+                          zlabel=None)
 
     plt.subplot(2, 2, 4)
     ba_plot.plot_colormap(result,
-                     units=ba.Axes.QSPACE,
-                     title="Q-space",
-                     xlabel=r'$Q_{y} [1/nm]$',
-                     ylabel=r'$Q_{z} [1/nm]$',
-                     zlabel=None)
+                          units=ba.Axes.QSPACE,
+                          title="Q-space",
+                          xlabel=r'$Q_{y} [1/nm]$',
+                          ylabel=r'$Q_{z} [1/nm]$',
+                          zlabel=None)
 
     plt.subplots_adjust(left=0.07, right=0.97, top=0.9, bottom=0.1, hspace=0.25)
     plt.show()
diff --git a/Examples/varia/BasicPolarizedReflectometry.py b/Examples/varia/BasicPolarizedReflectometry.py
index 230465be77fee04d1a764a03e0acd620eec28cd5..7c40e593ac065044382a10f9c549ce6669edecc2 100644
--- a/Examples/varia/BasicPolarizedReflectometry.py
+++ b/Examples/varia/BasicPolarizedReflectometry.py
@@ -40,7 +40,7 @@ def get_simulation(sample, scan_size=500):
     Defines and returns a specular simulation.
     """
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0*deg, 5*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0, 5*deg)
     simulation.setScan(scan)
     simulation.setSample(sample)
     return simulation
diff --git a/Examples/varia/CustomFormFactor.py b/Examples/varia/CustomFormFactor.py
index d185d6e52030d1ad97a20346790345bc472976ae..2aebb6ee78028672aca23f32fca82c6969ba2a60 100644
--- a/Examples/varia/CustomFormFactor.py
+++ b/Examples/varia/CustomFormFactor.py
@@ -71,8 +71,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0*deg))
-    det = ba.SphericalDetector(100, -1*deg, 1*deg, 100, 0*deg, 2*deg)
+    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0))
+    det = ba.SphericalDetector(100, -1*deg, 1*deg, 100, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, det)
     simulation.getOptions().setNumberOfThreads(
         -1)  # deactivate multithreading (why?)
diff --git a/Examples/varia/DepthProbe.py b/Examples/varia/DepthProbe.py
index 5651adef0f4bd9d04654ebd7de3027a8bf485e85..bc6224776f0231e4b614254ea47b07ef3823815a 100644
--- a/Examples/varia/DepthProbe.py
+++ b/Examples/varia/DepthProbe.py
@@ -34,7 +34,7 @@ t_Ti_top = 100*angstrom
 t_TiO2 = 30*angstrom
 
 #  beam data
-ai_min = 0*deg  # minimum incident angle
+ai_min = 0  # minimum incident angle
 ai_max = 1*deg  # maximum incident angle
 n_ai_bins = 5000  # number of bins in incident angle axis
 beam_sample_ratio = 0.01  # beam-to-sample size ratio
diff --git a/Examples/varia/FindPeaks.py b/Examples/varia/FindPeaks.py
index 996d66e4c8cb958942a5fc2855f3f62d594008e0..88347b523415503684b2bbf74497945a54dee3f5 100644
--- a/Examples/varia/FindPeaks.py
+++ b/Examples/varia/FindPeaks.py
@@ -55,8 +55,8 @@ def get_sample(lattice_rotation_angle=0*deg):
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1e8, 1.34*angstrom, ba.Direction(0.4*deg, 0*deg))
-    det = ba.SphericalDetector(200, -0.5*deg, 0.5*deg, 200, 0*deg, 0.6*deg)
+    beam = ba.Beam(1e8, 1.34*angstrom, ba.Direction(0.4*deg, 0))
+    det = ba.SphericalDetector(200, -0.5*deg, 0.5*deg, 200, 0, 0.6*deg)
     simulation = ba.GISASSimulation(beam, sample, det)
     simulation.getOptions().setMonteCarloIntegration(True, 100)
     return simulation
diff --git a/Examples/varia/FootprintCorrection.py b/Examples/varia/FootprintCorrection.py
index f280ede7619290b893dd484d4df4d4473fcf1951..bce268fc309390f06ec9f9c17cbcb49d58422928 100644
--- a/Examples/varia/FootprintCorrection.py
+++ b/Examples/varia/FootprintCorrection.py
@@ -42,7 +42,7 @@ def get_simulation(footprint):
     Defines and returns a specular simulation.
     """
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, 500, 0*deg, 0.6*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, 500, 0, 0.6*deg)
     scan.setFootprintFactor(footprint)
     simulation.setScan(scan)
     return simulation
diff --git a/Examples/varia/GratingMC.py b/Examples/varia/GratingMC.py
index a51a10c110e074c5cc6a1596481fad6da594d4c3..ca4b01cb6dc5c04b29a00413f2f09dc83a2d789e 100644
--- a/Examples/varia/GratingMC.py
+++ b/Examples/varia/GratingMC.py
@@ -58,8 +58,8 @@ def get_simulation(sample):
     """
     Create and return GISAXS simulation with beam and detector defined
     """
-    beam = ba.Beam(1e8, 1.34*angstrom, ba.Direction(0.4*deg, 0*deg))
-    det = ba.SphericalDetector(200, -0.5*deg, 0.5*deg, 200, 0*deg, 0.6*deg)
+    beam = ba.Beam(1e8, 1.34*angstrom, ba.Direction(0.4*deg, 0))
+    det = ba.SphericalDetector(200, -0.5*deg, 0.5*deg, 200, 0, 0.6*deg)
     simulation = ba.GISASSimulation(beam, sample, det)
     simulation.getOptions().setMonteCarloIntegration(True, 100)
     return simulation
diff --git a/Examples/varia/Interference1DLattice.py b/Examples/varia/Interference1DLattice.py
index b06858fe1f1b6d029f8dbebd597b5bebac92830e..1f1fb9a1a4dac4b1736cef1899ab022a226afc66 100644
--- a/Examples/varia/Interference1DLattice.py
+++ b/Examples/varia/Interference1DLattice.py
@@ -53,8 +53,8 @@ def get_sample():
 
 
 def get_simulation(sample):
-    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0*deg))
-    det = ba.SphericalDetector(200, -1*deg, 1*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0))
+    det = ba.SphericalDetector(200, -1*deg, 1*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, det)
     simulation.getOptions().setMonteCarloIntegration(True, 100)
     if not "__no_terminal__" in globals():
diff --git a/Examples/varia/LargeParticlesFormFactor.py b/Examples/varia/LargeParticlesFormFactor.py
index 33d555af113ee319df3b758d6cc048434dc45380..da2d80b000eaa9a2d359a4c1328bcf9a63858bdc 100644
--- a/Examples/varia/LargeParticlesFormFactor.py
+++ b/Examples/varia/LargeParticlesFormFactor.py
@@ -46,8 +46,8 @@ def get_simulation(sample, integration_flag):
     Returns a GISAXS simulation with defined beam and detector.
     If integration_flag=True, the simulation will integrate over detector bins.
     """
-    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0*deg))
-    det = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0*deg, 2*deg)
+    beam = ba.Beam(1, 1*angstrom, ba.Direction(0.2*deg, 0))
+    det = ba.SphericalDetector(200, -2*deg, 2*deg, 200, 0, 2*deg)
     simulation = ba.GISASSimulation(beam, sample, det)
     simulation.getOptions().setMonteCarloIntegration(integration_flag, 50)
     if not "__no_terminal__" in globals():
diff --git a/Examples/varia/OffSpecularSimulation.py b/Examples/varia/OffSpecularSimulation.py
index 93928e4b23246c70d7b6b7bfa26f47c62a0e30ec..a5b3e7b8178ea1655c940efa71a5d711a77d7f66 100644
--- a/Examples/varia/OffSpecularSimulation.py
+++ b/Examples/varia/OffSpecularSimulation.py
@@ -30,7 +30,7 @@ def get_sample():
     particle.setRotation(particle_rotation)
 
     # Define interference functions
-    iff = ba.InterferenceFunction1DLattice(100*nm, 0*deg)
+    iff = ba.InterferenceFunction1DLattice(100*nm, 0)
     iff_pdf = ba.FTDecayFunction1DCauchy(1000000*nm)
     iff.setDecayFunction(iff_pdf)
 
@@ -64,7 +64,7 @@ def get_simulation(sample):
     # define the beam with alpha_i varied between alpha_i_min and alpha_i_max
     alpha_i_axis = ba.FixedBinAxis("alpha_i", 200, alpha_i_min*deg,
                                    alpha_i_max*deg)
-    simulation.setBeamParameters(1*angstrom, alpha_i_axis, 0*deg)
+    simulation.setBeamParameters(1*angstrom, alpha_i_axis, 0)
     simulation.beam().setIntensity(1e9)
     simulation.setSample(sample)
     return simulation
diff --git a/Examples/varia/PolarizedNoAnalyzer.py b/Examples/varia/PolarizedNoAnalyzer.py
index 756d281a05c6d4b218a31fcdbe1fd543ba668ebf..143518cca37d97ec0fcb2f7339d6f4b42b45c5ef 100644
--- a/Examples/varia/PolarizedNoAnalyzer.py
+++ b/Examples/varia/PolarizedNoAnalyzer.py
@@ -40,7 +40,7 @@ def get_simulation(sample, scan_size=500):
     Defines and returns a specular simulation.
     """
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0*deg, 5*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0, 5*deg)
     simulation.setScan(scan)
     simulation.setSample(sample)
     return simulation
diff --git a/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py b/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py
index ea4bd39714cb46cd4448c83689090367355f3c97..a22a3f0cca7ab141d8881c721564012e0d366247 100644
--- a/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py
+++ b/Examples/varia/PolarizedNonperfectAnalyzerPolarizer.py
@@ -83,7 +83,8 @@ def run_simulation(*,
     simulation = get_simulation(sample)
 
     simulation.beam().setPolarization(polarization*polarizer_efficiency)
-    simulation.detector().setAnalyzerProperties(analyzer, analyzer_efficiency, 0.5)
+    simulation.detector().setAnalyzerProperties(analyzer, analyzer_efficiency,
+                                                0.5)
 
     simulation.setBackground(ba.ConstantBackground(1e-7))
 
diff --git a/Examples/varia/PolarizedSANS.py b/Examples/varia/PolarizedSANS.py
index 424cf73976c5461dce010ac14e5a464e6a8d2daf..0dfbdbfdf0e452a687f163f093461a52a3593039 100644
--- a/Examples/varia/PolarizedSANS.py
+++ b/Examples/varia/PolarizedSANS.py
@@ -28,7 +28,7 @@ def get_sample():
 
     # Define particles
     particle_1 = ba.Particle(material_Core, ff_1)
-    particle_1_position = kvector_t(0*nm, 0*nm, 2*nm)
+    particle_1_position = kvector_t(0, 0, 2*nm)
     particle_1.setPosition(particle_1_position)
     particle_2 = ba.Particle(material_Shell, ff_2)
 
@@ -59,11 +59,10 @@ def get_simulation(sample):
     simulation = ba.GISASSimulation()
 
     # Defining detector
-    simulation.setDetectorParameters(200, -3*deg, 3*deg, 200, -3*deg,
-                                     3*deg)
+    simulation.setDetectorParameters(200, -3*deg, 3*deg, 200, -3*deg, 3*deg)
 
     # Defining beam parameters
-    simulation.setBeamParameters(0.5*nm, 0*deg, 0*deg)
+    simulation.setBeamParameters(0.5*nm, 0, 0)
     simulation.beam().setIntensity(1e12)
 
     # Defining beam polarization and polarization analysis for spin-flip channel
diff --git a/Examples/varia/PolarizedSpinFlip.py b/Examples/varia/PolarizedSpinFlip.py
index b400f56cd94c33481f18d57d403b679dcfb80d1b..b86334c0fa5fa6d33c8d253bff1dd40a682483b9 100644
--- a/Examples/varia/PolarizedSpinFlip.py
+++ b/Examples/varia/PolarizedSpinFlip.py
@@ -39,7 +39,7 @@ def get_simulation(sample, scan_size=500):
     Defines and returns a specular simulation.
     """
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0*deg, 5*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0, 5*deg)
     simulation.setScan(scan)
     simulation.setSample(sample)
     return simulation
diff --git a/Examples/varia/RoughnessModel.py b/Examples/varia/RoughnessModel.py
index a9728ba853879ebf2da0d6935731027ea59462ca..0118c067df39f8448479fae010caadf72998327b 100644
--- a/Examples/varia/RoughnessModel.py
+++ b/Examples/varia/RoughnessModel.py
@@ -49,7 +49,7 @@ def get_simulation(sample, scan_size=500):
     Defines and returns a specular simulation.
     """
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0*deg, 2*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0, 2*deg)
     simulation.setScan(scan)
     simulation.setSample(sample)
     return simulation
diff --git a/Examples/varia/SpecularSimulationWithRoughness.py b/Examples/varia/SpecularSimulationWithRoughness.py
index 53290102b38518621b368c03c1ff7571e97ee366..5941d025d1a71a15809ad02e3554263cbc1a675a 100644
--- a/Examples/varia/SpecularSimulationWithRoughness.py
+++ b/Examples/varia/SpecularSimulationWithRoughness.py
@@ -45,7 +45,7 @@ def get_simulation(sample, scan_size=500):
     Defines and returns a specular simulation.
     """
     simulation = ba.SpecularSimulation()
-    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0*deg, 2*deg)
+    scan = ba.AngularSpecScan(1.54*angstrom, scan_size, 0, 2*deg)
     simulation.setScan(scan)
     simulation.setSample(sample)
     return simulation
diff --git a/Tests/Functional/PyCore/histogram2d.py b/Tests/Functional/PyCore/histogram2d.py
index 972ed0bb9baf6e897905d328f7e72f034d920280..54cf54b97f8b90047714c61a0c4ca7e0ead4f50a 100644
--- a/Tests/Functional/PyCore/histogram2d.py
+++ b/Tests/Functional/PyCore/histogram2d.py
@@ -35,8 +35,7 @@ class Histogram2DTest(unittest.TestCase):
         Testing construction of 2D histogram from numpy array
         """
         arr = numpy.array(
-            [[1, 2, 3, 4, 5.0], [6, 7, 8, 9, 10.0],
-             [11, 12, 13, 14, 15.0]],
+            [[1, 2, 3, 4, 5.0], [6, 7, 8, 9, 10.0], [11, 12, 13, 14, 15.0]],
             dtype=numpy.float64)
         hist = ba.Histogram2D(arr)
 
@@ -78,8 +77,7 @@ class Histogram2DTest(unittest.TestCase):
         Adding to the histogram content from numpy array
         """
         arr = numpy.array(
-            [[1, 2, 3, 4, 5.0], [6, 7, 8, 9, 10.0],
-             [11, 12, 13, 14, 15.0]],
+            [[1, 2, 3, 4, 5.0], [6, 7, 8, 9, 10.0], [11, 12, 13, 14, 15.0]],
             dtype=numpy.float64)
         hist = ba.Histogram2D(arr)
         # adding same content once again
@@ -113,8 +111,7 @@ class Histogram2DTest(unittest.TestCase):
         Testing newly create object
         """
         arr = numpy.array(
-            [[1, 2, 3, 4, 5.0], [6, 7, 8, 9, 10.0],
-             [11, 12, 13, 14, 15.0]],
+            [[1, 2, 3, 4, 5.0], [6, 7, 8, 9, 10.0], [11, 12, 13, 14, 15.0]],
             dtype=numpy.float64)
         hist = self.create_histogram(arr)
         arr_from_hist = hist.getArray()
diff --git a/Tests/Functional/PyCore/intensitydata_io.py b/Tests/Functional/PyCore/intensitydata_io.py
index b77fbebd28a0b2b70c93fa13554cb57db52feba7..a58b9a5344117a18655243648bc30a305b5f384b 100644
--- a/Tests/Functional/PyCore/intensitydata_io.py
+++ b/Tests/Functional/PyCore/intensitydata_io.py
@@ -91,7 +91,7 @@ class OutputDataIOTest(unittest.TestCase):
                                get_boundaries_flat_in_sin(10, -5*deg, 5*deg)))
         data.addAxis(
             ba.VariableBinAxis("axis1", 3,
-                               get_boundaries_flat_in_sin(3, 0*deg, 2*deg)))
+                               get_boundaries_flat_in_sin(3, 0, 2*deg)))
         fill_data(data)
         ba.IntensityDataIOFactory.writeOutputData(data, "tmp.int")
         newdata = ba.IntensityDataIOFactory.readOutputData("tmp.int")
@@ -102,7 +102,7 @@ class OutputDataIOTest(unittest.TestCase):
         data.addAxis(ba.FixedBinAxis("axis0", 10, -5, 5))
         data.addAxis(
             ba.VariableBinAxis("axis1", 3,
-                               get_boundaries_flat_in_sin(3, 0*deg, 2*deg)))
+                               get_boundaries_flat_in_sin(3, 0, 2*deg)))
         fill_data(data)
         ba.IntensityDataIOFactory.writeOutputData(data, "tmp.int")
         newdata = ba.IntensityDataIOFactory.readOutputData("tmp.int")
@@ -155,15 +155,13 @@ class OutputDataIOTest(unittest.TestCase):
         self.assertTrue(is_the_same_data(data, newdata))
 
     def test_SaveNumpyArray_ReadOutputData(self):
-        arr = numpy.array([[0, 1, 2, 3.0], [4, 5, 6, 7.0],
-                           [8, 9, 10, 11.0]])
+        arr = numpy.array([[0, 1, 2, 3.0], [4, 5, 6, 7.0], [8, 9, 10, 11.0]])
         numpy.savetxt('tmp.txt', arr)
         newdata = ba.IntensityDataIOFactory.readOutputData("tmp.txt")
         self.assertTrue(numpy.array_equal(newdata.getArray(), arr))
 
     def test_SaveNumpyArray_ReadRawDataVector(self):
-        arr = numpy.array([[0, 1, 2, 3.0], [4, 5, 6, 7.0],
-                           [8, 9, 10, 11.0]])
+        arr = numpy.array([[0, 1, 2, 3.0], [4, 5, 6, 7.0], [8, 9, 10, 11.0]])
         numpy.savetxt('tmp.txt', arr)
         newdata = numpy.array(
             ba.IntensityDataIOFactory.readOutputData(
diff --git a/Tests/Functional/PyCore/mesocrystal1.py b/Tests/Functional/PyCore/mesocrystal1.py
index b9acbc0a94d1af117cece85f610b3162aeaf1f1b..f59d36e8b3879513dd78cb2397ba9627e15f4838 100644
--- a/Tests/Functional/PyCore/mesocrystal1.py
+++ b/Tests/Functional/PyCore/mesocrystal1.py
@@ -144,8 +144,7 @@ class MySampleBuilder(ISampleBuilder):
     # create lattice
     # -------------------------------------------------------------------------
     def createLattice(self, stacking_radius_a, stacking_radius_c):
-        result = HexagonalLattice(stacking_radius_a*2,
-                                  stacking_radius_c*2*2.3)
+        result = HexagonalLattice(stacking_radius_a*2, stacking_radius_c*2*2.3)
         result.setSelectionRule(SimpleSelectionRule(-1, 1, 1, 3))
         return result
 
@@ -175,9 +174,9 @@ def runTest():
 # create simulation
 def createSimulation():
     simulation = GISASSimulation()
-    simulation.setBeamParameters(1.77*angstrom, 0.4*deg, 0*deg)
+    simulation.setBeamParameters(1.77*angstrom, 0.4*deg, 0)
     simulation.beam().setIntensity(5.0090e+12)
-    simulation.setDetectorParameters(50, 0.2*deg, 2.5*deg, 50, 0*deg, 2.5*deg)
+    simulation.setDetectorParameters(50, 0.2*deg, 2.5*deg, 50, 0, 2.5*deg)
     return simulation
 
 
diff --git a/Tests/Functional/PyCore/polmagcylinders1.py b/Tests/Functional/PyCore/polmagcylinders1.py
index 096fd8ec0e33b01d554ff43135e11261feb7908d..f86c25e9a99b77d62c715778a9e115e8e00aa1c3 100644
--- a/Tests/Functional/PyCore/polmagcylinders1.py
+++ b/Tests/Functional/PyCore/polmagcylinders1.py
@@ -37,8 +37,8 @@ def runSimulation():
 
     # build and run experiment
     simulation = ba.GISASSimulation()
-    simulation.setDetectorParameters(100, 0*deg, 2*deg, 100, 0*deg, 2*deg)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setDetectorParameters(100, 0, 2*deg, 100, 0, 2*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.setSample(multi_layer)
     simulation.beam().setIntensity(1e2)
     simulation.runSimulation()
diff --git a/Tests/Functional/PyCore/polmagcylinders2.py b/Tests/Functional/PyCore/polmagcylinders2.py
index c60c728966a32ad46a9ee0737b73956c9198b541..454870959e829d6207c3b81fd28274e81a7e32e0 100644
--- a/Tests/Functional/PyCore/polmagcylinders2.py
+++ b/Tests/Functional/PyCore/polmagcylinders2.py
@@ -40,11 +40,10 @@ def getSimulationIntensity(rho_beam, efficiency):
 
     # build and run experiment
     simulation = GISASSimulation()
-    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0*deg,
-                                     2*deg)
+    simulation.setDetectorParameters(100, -1*deg, 1*deg, 100, 0, 2*deg)
     zplus = kvector_t(0, 0, 1)
     simulation.detector().setAnalyzerProperties(zplus, efficiency, 0.5)
-    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+    simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
     simulation.beam().setPolarization(rho_beam)
     simulation.setSample(multi_layer)
     simulation.beam().setIntensity(1e9)
diff --git a/Tests/Functional/PyCore/shape2d.py b/Tests/Functional/PyCore/shape2d.py
index 875f5018c262787422b3e43236271990b688e259..9f4ac49dffb363567c1af24caa53b18f23996f6b 100644
--- a/Tests/Functional/PyCore/shape2d.py
+++ b/Tests/Functional/PyCore/shape2d.py
@@ -31,8 +31,7 @@ class Shape2DTest(unittest.TestCase):
         """
 
         # initialization from numpy array
-        points = numpy.array([[-1, -0.5], [2, -0.5], [2, 1.5],
-                              [-1, 1.5]])
+        points = numpy.array([[-1, -0.5], [2, -0.5], [2, 1.5], [-1, 1.5]])
 
         p = ba.Polygon(points)
         self.assertTrue(p.contains(-0.75, -0.25))
diff --git a/Tests/Functional/PyCore/transform_BoxComposition.py b/Tests/Functional/PyCore/transform_BoxComposition.py
index 9ed632d38848e686c8f9edc6c3526a9e65ff496e..fc40e1d89954834ed31de07f800dfc7dfaac0e92 100644
--- a/Tests/Functional/PyCore/transform_BoxComposition.py
+++ b/Tests/Functional/PyCore/transform_BoxComposition.py
@@ -152,8 +152,7 @@ class TransformBoxCompositionTest(unittest.TestCase):
         height = 10.0
         particle = Particle(particle_material,
                             FormFactorBox(length, width, height))
-        particle.setPosition(
-            kvector_t(0, 0, -layer_thickness/2.0 - height/2))
+        particle.setPosition(kvector_t(0, 0, -layer_thickness/2.0 - height/2))
 
         reference_data = self.get_result(particle)
         #IntensityDataIOFactory.writeIntensityData(reference_data, "ref_BoxCompositionRotateZ.int")
@@ -185,8 +184,7 @@ class TransformBoxCompositionTest(unittest.TestCase):
         height = 20.0
         particle = Particle(particle_material,
                             FormFactorBox(length, width, height))
-        particle.setPosition(
-            kvector_t(0, 0, -layer_thickness/2.0 - height/2))
+        particle.setPosition(kvector_t(0, 0, -layer_thickness/2.0 - height/2))
 
         reference_data = self.get_result(particle)
         #IntensityDataIOFactory.writeIntensityData(reference_data, "ref_BoxCompositionRotateZandY.int")
@@ -218,8 +216,7 @@ class TransformBoxCompositionTest(unittest.TestCase):
         height = 50.0
         particle = Particle(particle_material,
                             FormFactorBox(length, width, height))
-        particle.setPosition(
-            kvector_t(0, 0, -layer_thickness/2.0 - height/2))
+        particle.setPosition(kvector_t(0, 0, -layer_thickness/2.0 - height/2))
         reference_data = self.get_result(particle)
         #IntensityDataIOFactory.writeIntensityData(reference_data, "ref_BoxStackComposition.int")
 
diff --git a/Tests/Functional/PyCore/transform_CoreShellBox.py b/Tests/Functional/PyCore/transform_CoreShellBox.py
index f1de3a2edc4abb37b8db450b7f94199d097c4ae0..3bc46c3e25d8c056255bab2a2a9bd68578bcdcd2 100644
--- a/Tests/Functional/PyCore/transform_CoreShellBox.py
+++ b/Tests/Functional/PyCore/transform_CoreShellBox.py
@@ -98,8 +98,8 @@ class TransformCoreShellBoxTest(unittest.TestCase):
         shell_ref = Particle(
             mShell, FormFactorBox(shell_length, shell_width, shell_height))
         coreshell_ref = ParticleCoreShell(
-            shell_ref, core_ref,
-            kvector_t(0, 0, (shell_height - core_height)/2))
+            shell_ref, core_ref, kvector_t(0, 0,
+                                           (shell_height - core_height)/2))
         coreshell_ref.setPosition(
             kvector_t(
                 0, 0, -layer_thickness/2.0 -
@@ -123,8 +123,9 @@ class TransformCoreShellBoxTest(unittest.TestCase):
             shell, core, kvector_t(0, 0, (shell_height - core_height)/2))
         coreshell.setRotation(RotationZ(90*deg))
         coreshell.setPosition(
-            kvector_t(0, 0, -layer_thickness/2.0 - shell_height/
-                      2))  # center of coreshell  in center of the layer
+            kvector_t(
+                0, 0, -layer_thickness/2.0 -
+                shell_height/2))  # center of coreshell  in center of the layer
 
         data = self.get_result(coreshell)
 
@@ -154,8 +155,8 @@ class TransformCoreShellBoxTest(unittest.TestCase):
         shell_ref = Particle(
             mShell, FormFactorBox(shell_length, shell_width, shell_height))
         coreshell_ref = ParticleCoreShell(
-            shell_ref, core_ref,
-            kvector_t(0, 0, (shell_height - core_height)/2))
+            shell_ref, core_ref, kvector_t(0, 0,
+                                           (shell_height - core_height)/2))
         coreshell_ref.setPosition(
             kvector_t(
                 0, 0, -layer_thickness/2.0 -
@@ -178,9 +179,9 @@ class TransformCoreShellBoxTest(unittest.TestCase):
         coreshell = ParticleCoreShell(
             shell, core, kvector_t(0, 0, (shell_height - core_height)/2))
         coreshell.setRotation(RotationY(90.*deg))
-        coreshell.setPosition(
-            kvector_t(0, 0, -layer_thickness/
-                      2))  # center of coreshell  in center of the layer
+        coreshell.setPosition(kvector_t(
+            0, 0,
+            -layer_thickness/2))  # center of coreshell  in center of the layer
 
         data = self.get_result(coreshell)
 
@@ -210,8 +211,8 @@ class TransformCoreShellBoxTest(unittest.TestCase):
         shell_ref = Particle(
             mShell, FormFactorBox(shell_length, shell_width, shell_height))
         coreshell_ref = ParticleCoreShell(
-            shell_ref, core_ref,
-            kvector_t(0, 0, (shell_height - core_height)/2))
+            shell_ref, core_ref, kvector_t(0, 0,
+                                           (shell_height - core_height)/2))
         coreshell_ref.setPosition(
             kvector_t(
                 0, 0, -layer_thickness/2.0 -
@@ -237,9 +238,9 @@ class TransformCoreShellBoxTest(unittest.TestCase):
         coreshell.setRotation(RotationZ(90*deg))
         coreshell.rotate(RotationY(90*deg))
         # rotation changes reference point, which now coincide with center of the volume
-        coreshell.setPosition(
-            kvector_t(0, 0, -layer_thickness/
-                      2))  # center of coreshell  in center of the layer
+        coreshell.setPosition(kvector_t(
+            0, 0,
+            -layer_thickness/2))  # center of coreshell  in center of the layer
 
         data = self.get_result(coreshell)
 
diff --git a/Tests/Functional/PyCore/utils.py b/Tests/Functional/PyCore/utils.py
index ab4ff98bd51404693bee29f870da72e4fd25e783..cc69ab8997b1639c602bf608775df79eedc96212 100644
--- a/Tests/Functional/PyCore/utils.py
+++ b/Tests/Functional/PyCore/utils.py
@@ -41,6 +41,6 @@ def get_reference_data(filename):
 
 
 def get_simulation_MiniGISAS(sample):
-    detector = ba.SphericalDetector(25, -2*deg, 2*deg, 25, 0*deg, 2*deg)
+    detector = ba.SphericalDetector(25, -2*deg, 2*deg, 25, 0, 2*deg)
     beam = ba.Beam(1., 1*angstrom, ba.Direction(0.2*deg, 0))
     return ba.GISASSimulation(beam, sample, detector)
diff --git a/Tests/Functional/PyFit/fitobjective_api.py b/Tests/Functional/PyFit/fitobjective_api.py
index 606dde5d791d764a7f8585c23e5f9395fe48b188..4526a6185c0de25a5353beb44d42f15b8b6a11c1 100644
--- a/Tests/Functional/PyFit/fitobjective_api.py
+++ b/Tests/Functional/PyFit/fitobjective_api.py
@@ -29,8 +29,7 @@ class SimulationBuilder:
 
         simulation = ba.GISASSimulation()
         simulation.setSample(ml)
-        simulation.setDetectorParameters(self.m_ncol, 0, 1, self.m_nrow,
-                                         0, 1)
+        simulation.setDetectorParameters(self.m_ncol, 0, 1, self.m_nrow, 0, 1)
         return simulation
 
     def create_data(self):
diff --git a/Tests/Functional/PyFit/standalone_fits.py b/Tests/Functional/PyFit/standalone_fits.py
index 5b15d2c7a13f173b31fe03f20860184c3b0bc469..33b8458b9c699ccc2918f4d6b9432250f5860cae 100644
--- a/Tests/Functional/PyFit/standalone_fits.py
+++ b/Tests/Functional/PyFit/standalone_fits.py
@@ -56,10 +56,8 @@ class StandaloneFitTest(unittest.TestCase):
         Testing fit of rosenbrock function
         """
         params = ba.Parameters()
-        params.add(
-            ba.Parameter("x", -1.2, ba.AttLimits.limited(-5, 5), 0.01))
-        params.add(ba.Parameter("y", 1, ba.AttLimits.limited(-5, 5),
-                                0.01))
+        params.add(ba.Parameter("x", -1.2, ba.AttLimits.limited(-5, 5), 0.01))
+        params.add(ba.Parameter("y", 1, ba.AttLimits.limited(-5, 5), 0.01))
 
         model = Rosenbrock()
         minimizer = ba.Minimizer()
diff --git a/Tests/Performance/Python/test_performance.py b/Tests/Performance/Python/test_performance.py
index 1dc7092360d0f2131e889dfda896c883927f10aa..1878642eeaada7a6e09f9a595c6f3416fe15dd6c 100755
--- a/Tests/Performance/Python/test_performance.py
+++ b/Tests/Performance/Python/test_performance.py
@@ -187,7 +187,7 @@ class CustomTest(FactoryTest):
         simulation.getOptions().setNumberOfThreads(-1)
         simulation.setDetectorParameters(100, phi_min*deg, phi_max*deg, 100,
                                          alpha_min*deg, alpha_max*deg)
-        simulation.setBeamParameters(1*angstrom, 0.2*deg, 0*deg)
+        simulation.setBeamParameters(1*angstrom, 0.2*deg, 0)
         return simulation