diff --git a/App/src/IsGISAXSTools.cpp b/App/src/IsGISAXSTools.cpp
index 224abc4e62b191947c8bfc87c94c4b9dea95041f..cbe47abab9aa963debd73651c2800ea4f206e98f 100644
--- a/App/src/IsGISAXSTools.cpp
+++ b/App/src/IsGISAXSTools.cpp
@@ -163,7 +163,7 @@ TH2D *IsGISAXSTools::getOutputDataTH2D(const OutputData<double>& output,
 //        std::cout << i << " axis1:" << haxises[1].xbins[i] << std::endl;
 //    }
 
-    TH2D *hist2 = new TH2D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins,& haxises[0].xbins[0], (int)haxises[1].nbins,& haxises[1].xbins[0]);
+    TH2D *hist2 = new TH2D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins, &haxises[0].xbins[0], (int)haxises[1].nbins, &haxises[1].xbins[0]);
     hist2->GetXaxis()->SetTitle( haxises[0].name.c_str() );
     hist2->GetYaxis()->SetTitle( haxises[1].name.c_str() );
 
@@ -312,16 +312,16 @@ TH1 *IsGISAXSTools::getOutputDataTH123D(const OutputData<double>& output, const
     TH2D *hist2(0);
     TH3D *hist3(0);
     if(output.getRank() == 1) {
-        hist1 = new TH1D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins,& haxises[0].xbins[0]);
+        hist1 = new TH1D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins, &haxises[0].xbins[0]);
         hist1->GetXaxis()->SetTitle( haxises[0].name.c_str() );
         hist = hist1;
     } else if(output.getRank() == 2) {
-        hist2 = new TH2D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins,& haxises[0].xbins[0], (int)haxises[1].nbins,& haxises[1].xbins[0]);
+        hist2 = new TH2D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins, &haxises[0].xbins[0], (int)haxises[1].nbins, &haxises[1].xbins[0]);
         hist2->GetXaxis()->SetTitle( haxises[0].name.c_str() );
         hist2->GetYaxis()->SetTitle( haxises[1].name.c_str() );
         hist = hist2;
     } else if(output.getRank() == 3) {
-        hist3 = new TH3D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins,& haxises[0].xbins[0], (int)haxises[1].nbins,& haxises[1].xbins[0], (int)haxises[1].nbins,& haxises[1].xbins[0]);
+        hist3 = new TH3D(histo_name.c_str(), histo_name.c_str(), (int)haxises[0].nbins, &haxises[0].xbins[0], (int)haxises[1].nbins, &haxises[1].xbins[0], (int)haxises[1].nbins, &haxises[1].xbins[0]);
         hist3->GetXaxis()->SetTitle( haxises[0].name.c_str() );
         hist3->GetYaxis()->SetTitle( haxises[1].name.c_str() );
         hist3->GetZaxis()->SetTitle( haxises[2].name.c_str() );
diff --git a/App/src/StandardSamples.cpp b/App/src/StandardSamples.cpp
index 5706d005ca140bdf342110e28925619bcd69185b..f55bb495f29f6dabb765a9a64ee6bfb84a43c3e4 100644
--- a/App/src/StandardSamples.cpp
+++ b/App/src/StandardSamples.cpp
@@ -660,7 +660,7 @@ ISample *StandardSamples::IsGISAXS6_lattice()
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
     PositionParticleInfo particle_info(
-        new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+        new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
 
     particle_decoration.addInterferenceFunction(p_interference_function);
@@ -715,7 +715,7 @@ ISample *StandardSamples::IsGISAXS6_centered()
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
     PositionParticleInfo particle_info
-        (new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+        (new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
     // particle 2
     kvector_t position_2(5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
@@ -773,7 +773,7 @@ ISample *StandardSamples::IsGISAXS6_rotated()
     // particle
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
-    PositionParticleInfo particle_info( new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+    PositionParticleInfo particle_info( new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
 
     particle_decoration.addInterferenceFunction(p_interference_function);
@@ -796,13 +796,14 @@ ISample *StandardSamples::IsGISAXS7_morphology()
     Layer air_layer;
     air_layer.setMaterial(p_air_material);
     ParticleDecoration particle_decoration;
+
     // add particle number 1:
     FormFactorBox ff1(1.0*Units::nanometer,
                       1.0*Units::nanometer,
                       1.0*Units::nanometer);
     kvector_t pos1(0.0*Units::nanometer, 0.0*Units::nanometer, 0.0);
     PositionParticleInfo particle_info1
-        (new Particle(n_particle, ff1), 0, pos1, 0.5);
+        (new Particle(n_particle, ff1), pos1, 0.5);
     particle_decoration.addParticleInfo(particle_info1);
     // add particle number 2:
     FormFactorBox ff2(1.0*Units::nanometer,
@@ -811,9 +812,9 @@ ISample *StandardSamples::IsGISAXS7_morphology()
     kvector_t pos2(5.0*Units::nanometer,
                    5.0*Units::nanometer,
                    0.0);
-    Geometry::RotateZ_3D *p_rot2 = new Geometry::RotateZ_3D(10*Units::degree);
+    Geometry::PTransform3D m2(new Geometry::RotateZ_3D(10*Units::degree));
     PositionParticleInfo particle_info2
-        (new Particle(n_particle, ff2), p_rot2, pos2, 0.5);
+        (new Particle(n_particle, ff2), m2, pos2, 0.5);
     particle_decoration.addParticleInfo(particle_info2);
     // add particle number 3:
     FormFactorBox ff3(1.0*Units::nanometer,
@@ -822,9 +823,9 @@ ISample *StandardSamples::IsGISAXS7_morphology()
     kvector_t pos3(-5.0*Units::nanometer,
                    -5.0*Units::nanometer,
                    0.0);
-    Geometry::RotateZ_3D *p_rot3 = new Geometry::RotateZ_3D(20*Units::degree);
+    Geometry::PTransform3D m3(new Geometry::RotateZ_3D(20*Units::degree));
     PositionParticleInfo particle_info3
-        (new Particle(n_particle, ff3), p_rot3, pos3, 0.5);
+        (new Particle(n_particle, ff3), m3, pos3, 0.5);
     particle_decoration.addParticleInfo(particle_info3);
     // add particle number 4:
     FormFactorBox ff4(1.0*Units::nanometer,
@@ -833,9 +834,9 @@ ISample *StandardSamples::IsGISAXS7_morphology()
     kvector_t pos4(5.0*Units::nanometer,
                    -5.0*Units::nanometer,
                    0.0);
-    Geometry::RotateZ_3D *p_rot4 = new Geometry::RotateZ_3D(30*Units::degree);
+    Geometry::PTransform3D m4(new Geometry::RotateZ_3D(30*Units::degree));
     PositionParticleInfo particle_info4
-        (new Particle(n_particle, ff4), p_rot4, pos4, 0.5);
+        (new Particle(n_particle, ff4), m4, pos4, 0.5);
     particle_decoration.addParticleInfo(particle_info4);
     // add particle number 5:
     FormFactorBox ff5(1.0*Units::nanometer,
@@ -844,9 +845,9 @@ ISample *StandardSamples::IsGISAXS7_morphology()
     kvector_t pos5(-5.0*Units::nanometer,
                    5.0*Units::nanometer,
                    0.0);
-    Geometry::RotateZ_3D *p_rot5 = new Geometry::RotateZ_3D(40*Units::degree);
+    Geometry::PTransform3D m5(new Geometry::RotateZ_3D(40*Units::degree));
     PositionParticleInfo particle_info5
-        (new Particle(n_particle, ff5), p_rot5, pos5, 0.5);
+        (new Particle(n_particle, ff5), m5, pos5, 0.5);
     particle_decoration.addParticleInfo(particle_info5);
     // add particle number 6:
     FormFactorBox ff6(1.0*Units::nanometer,
@@ -855,45 +856,45 @@ ISample *StandardSamples::IsGISAXS7_morphology()
     kvector_t pos6(0.0*Units::nanometer,
                    0.0*Units::nanometer,
                    0.0);
-    Geometry::RotateZ_3D *p_rot6 = new Geometry::RotateZ_3D(50*Units::degree);
+    Geometry::PTransform3D m6(new Geometry::RotateZ_3D(50*Units::degree));
     PositionParticleInfo particle_info6
-        (new Particle(n_particle, ff6), p_rot6, pos6, 0.5);
+        (new Particle(n_particle, ff6), m6, pos6, 0.5);
     particle_decoration.addParticleInfo(particle_info6);
     // add particle number 7:
     FormFactorBox ff7(1.0*Units::nanometer,
                       2.0*Units::nanometer,
                       1.0*Units::nanometer);
     kvector_t pos7(5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot7 = new Geometry::RotateZ_3D(60*Units::degree);
+    Geometry::PTransform3D m7(new Geometry::RotateZ_3D(60*Units::degree));
     PositionParticleInfo particle_info7
-        (new Particle(n_particle, ff7), p_rot7, pos7, 0.5);
+        (new Particle(n_particle, ff7), m7, pos7, 0.5);
     particle_decoration.addParticleInfo(particle_info7);
     // add particle number 8:
     FormFactorBox ff8(1.0*Units::nanometer,
                       3.0*Units::nanometer,
                       1.0*Units::nanometer);
     kvector_t pos8(-5.0*Units::nanometer, -5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot8 = new Geometry::RotateZ_3D(70*Units::degree);
+    Geometry::PTransform3D m8(new Geometry::RotateZ_3D(70*Units::degree));
     PositionParticleInfo particle_info8
-        (new Particle(n_particle, ff8), p_rot8, pos8, 0.5);
+        (new Particle(n_particle, ff8), m8, pos8, 0.5);
     particle_decoration.addParticleInfo(particle_info8);
     // add particle number 9:
     FormFactorBox ff9(1.0*Units::nanometer,
                       4.0*Units::nanometer,
                       1.0*Units::nanometer);
     kvector_t pos9(5.0*Units::nanometer, -5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot9 = new Geometry::RotateZ_3D(80*Units::degree);
+    Geometry::PTransform3D m9(new Geometry::RotateZ_3D(80*Units::degree));
     PositionParticleInfo particle_info9
-        (new Particle(n_particle, ff9), p_rot9, pos9, 0.5);
+        (new Particle(n_particle, ff9), m9, pos9, 0.5);
     particle_decoration.addParticleInfo(particle_info9);
     // add particle number 10:
     FormFactorBox ff10(1.0*Units::nanometer,
                        5.0*Units::nanometer,
                        1.0*Units::nanometer);
     kvector_t pos10(-5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot10 = new Geometry::RotateZ_3D(90*Units::degree);
+    Geometry::PTransform3D m10(new Geometry::RotateZ_3D(90*Units::degree));
     PositionParticleInfo particle_info10
-        (new Particle(n_particle, ff10), p_rot10, pos10, 0.5);
+        (new Particle(n_particle, ff10), m10, pos10, 0.5);
     particle_decoration.addParticleInfo(particle_info10);
 
     LayerDecorator air_layer_decorator(air_layer, particle_decoration);
@@ -1021,8 +1022,7 @@ ISample *StandardSamples::IsGISAXS9_RotatedPyramid()
                                            5*Units::nanometer,
                                            Units::deg2rad(54.73)) );
 
-    Geometry::ITransform3D *transform =
-        new Geometry::RotateZ_3D(angle_around_z);
+    Geometry::PTransform3D transform(new Geometry::RotateZ_3D(angle_around_z));
 
     ParticleDecoration particle_decoration;
 
diff --git a/App/src/TestConvolution.cpp b/App/src/TestConvolution.cpp
index a71dbed11bedeeee603373b7e4e30f7bc977e40f..a68f984c6c677362e5c56593520716f79c73ac9d 100644
--- a/App/src/TestConvolution.cpp
+++ b/App/src/TestConvolution.cpp
@@ -91,7 +91,7 @@ void TestConvolution::test_convolve1d()
        par[3*i_par+3] = (xmax-xmin)*0.01+gRandom->Rndm()*(xmax-xmin);
        par[3*i_par+4] = sigmax/5.+sigmax*gRandom->Rndm();
     }
-    TF1 *fsignal = new TF1("f",this,& TestConvolution::fpeaks, xmin, xmax,2+3*m_npeaks, "TestConvolution","fpeaks");
+    TF1 *fsignal = new TF1("f",this, &TestConvolution::fpeaks, xmin, xmax,2+3*m_npeaks, "TestConvolution","fpeaks");
     fsignal->SetNpx(10000);
     fsignal->SetParameters(par);
     signal.resize(npoints);
diff --git a/App/src/TestFittingModule2.cpp b/App/src/TestFittingModule2.cpp
index 7d821911380f3280a55437119790f5fff6ca3431..2f030885b3759871bff42acf7080842b0214a6fd 100644
--- a/App/src/TestFittingModule2.cpp
+++ b/App/src/TestFittingModule2.cpp
@@ -331,11 +331,11 @@ ISample *TestFittingModule2::SampleBuilder::buildSample() const
 void TestFittingModule2::SampleBuilder::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("m_cylinder_height",& m_cylinder_height);
-    getParameterPool()->registerParameter("m_cylinder_radius",& m_cylinder_radius);
-    getParameterPool()->registerParameter("m_prism3_half_side",& m_prism3_half_side);
-    getParameterPool()->registerParameter("m_prism3_height",& m_prism3_height);
-    getParameterPool()->registerParameter("m_cylinder_ratio",& m_cylinder_ratio);
+    getParameterPool()->registerParameter("m_cylinder_height", &m_cylinder_height);
+    getParameterPool()->registerParameter("m_cylinder_radius", &m_cylinder_radius);
+    getParameterPool()->registerParameter("m_prism3_half_side", &m_prism3_half_side);
+    getParameterPool()->registerParameter("m_prism3_height", &m_prism3_height);
+    getParameterPool()->registerParameter("m_cylinder_ratio", &m_cylinder_ratio);
 }
 
 
diff --git a/App/src/TestFourier.cpp b/App/src/TestFourier.cpp
index 3c46470a42de4bef5d4074683ef6fd9f476ad6bc..f67580caae79cb0ad20913fb2bbeb9e5739a0749 100644
--- a/App/src/TestFourier.cpp
+++ b/App/src/TestFourier.cpp
@@ -52,7 +52,7 @@ void TestFourier::execute()
 
     mp_intensity_output = simulation.getOutputDataClone();
     OutputData<complex_t> fft_map;
-    OutputDataFunctions::FourierTransform(*mp_intensity_output,& fft_map);
+    OutputDataFunctions::FourierTransform(*mp_intensity_output, &fft_map);
     OutputData<double> *p_real_fft_map = OutputDataFunctions::getModulusPart(fft_map);
     OutputDataFunctions::FourierTransformR(fft_map, mp_intensity_output);
     IsGISAXSTools::drawOutputData(*p_real_fft_map, "c1_four", "Fourier transform",
diff --git a/App/src/TestIsGISAXS12.cpp b/App/src/TestIsGISAXS12.cpp
index 7882f39ce9c53674f1fa719f92c3acb572a9c8da..2884f4e165f79f74baa77306d060d55e32d52576 100644
--- a/App/src/TestIsGISAXS12.cpp
+++ b/App/src/TestIsGISAXS12.cpp
@@ -458,16 +458,16 @@ TestIsGISAXS12::TestSampleBuilder::TestSampleBuilder()
 void TestIsGISAXS12::TestSampleBuilder::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("particle_probability1",& m_particle_probability1);
-    getParameterPool()->registerParameter("particle_radius1",& m_particle_radius1);
-    getParameterPool()->registerParameter("dispersion_radius1",& m_dispersion_radius1);
-    getParameterPool()->registerParameter("height_aspect_ratio1",& m_height_aspect_ratio1);
-    getParameterPool()->registerParameter("particle_probability2",& m_particle_probability2);
-    getParameterPool()->registerParameter("particle_radius2",& m_particle_radius2);
-    getParameterPool()->registerParameter("dispersion_radius2",& m_dispersion_radius2);
-    getParameterPool()->registerParameter("height_aspect_ratio2",& m_height_aspect_ratio2);
-    getParameterPool()->registerParameter("interf_distance",& m_interf_distance);
-    getParameterPool()->registerParameter("interf_width",& m_interf_width);
+    getParameterPool()->registerParameter("particle_probability1", &m_particle_probability1);
+    getParameterPool()->registerParameter("particle_radius1", &m_particle_radius1);
+    getParameterPool()->registerParameter("dispersion_radius1", &m_dispersion_radius1);
+    getParameterPool()->registerParameter("height_aspect_ratio1", &m_height_aspect_ratio1);
+    getParameterPool()->registerParameter("particle_probability2", &m_particle_probability2);
+    getParameterPool()->registerParameter("particle_radius2", &m_particle_radius2);
+    getParameterPool()->registerParameter("dispersion_radius2", &m_dispersion_radius2);
+    getParameterPool()->registerParameter("height_aspect_ratio2", &m_height_aspect_ratio2);
+    getParameterPool()->registerParameter("interf_distance", &m_interf_distance);
+    getParameterPool()->registerParameter("interf_width", &m_interf_width);
 }
 
 
diff --git a/App/src/TestIsGISAXS5.cpp b/App/src/TestIsGISAXS5.cpp
index 25121181da616e3e1df0584d33f2a1ac7a2166d4..bbc35db0038c6fac0f4d384700efd0d1a73b7d3e 100644
--- a/App/src/TestIsGISAXS5.cpp
+++ b/App/src/TestIsGISAXS5.cpp
@@ -266,11 +266,11 @@ TestIsGISAXS5::SampleBuilder::SampleBuilder()
 void TestIsGISAXS5::SampleBuilder::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("particle_radius",& m_particle_radius);
-    getParameterPool()->registerParameter("dispersion_radius",& m_dispersion_radius);
-    getParameterPool()->registerParameter("height_aspect_ratio",& m_height_aspect_ratio);
-    getParameterPool()->registerParameter("interf_distance",& m_interf_distance);
-    getParameterPool()->registerParameter("interf_width",& m_interf_width);
+    getParameterPool()->registerParameter("particle_radius", &m_particle_radius);
+    getParameterPool()->registerParameter("dispersion_radius", &m_dispersion_radius);
+    getParameterPool()->registerParameter("height_aspect_ratio", &m_height_aspect_ratio);
+    getParameterPool()->registerParameter("interf_distance", &m_interf_distance);
+    getParameterPool()->registerParameter("interf_width", &m_interf_width);
 }
 
 ISample *TestIsGISAXS5::SampleBuilder::buildSample() const
diff --git a/App/src/TestMesoCrystal1.cpp b/App/src/TestMesoCrystal1.cpp
index 98e59cf54dfd9e0bbabcda30e68c0b895e167637..c2a6621059f26deddbe8b8e6abd754cad87dd961 100644
--- a/App/src/TestMesoCrystal1.cpp
+++ b/App/src/TestMesoCrystal1.cpp
@@ -214,21 +214,17 @@ ISample* TestMesoCrystal1::SampleBuilder::buildSample() const
     size_t n_max_phi_rotation_steps = 180;
     size_t n_alpha_rotation_steps = 1;
 
-    double alpha_step = 5.0*Units::degree/n_alpha_rotation_steps;
-    double alpha_start = - (n_alpha_rotation_steps/2.0)*alpha_step;
-
     double phi_step = 2*M_PI/3.0/n_max_phi_rotation_steps;
     double phi_start = 0.0;
+    Geometry::PTransform3D trafo;
     for (size_t i=0; i<n_max_phi_rotation_steps; ++i) {
         for (size_t j=0; j<n_alpha_rotation_steps; ++j) {
-            Geometry::RotateZ_3D transform1(phi_start + (double)i*phi_step);
-            Geometry::RotateY_3D transform2(alpha_start + j*alpha_step);
-            Geometry::ITransform3D *p_total_transform =
-                new Geometry::ITransform3D(transform1);
+            trafo = Geometry::PTransform3D(new
+                Geometry::RotateZ_3D(phi_start + i*phi_step));
             particle_decoration.addParticle(
                 createMesoCrystal(m_lattice_length_a,
-                                  n_particle_adapted,& ff_meso),
-                p_total_transform,
+                                  n_particle_adapted, &ff_meso),
+                trafo,
                 m_meso_height);
         }
     }
@@ -253,16 +249,16 @@ ISample* TestMesoCrystal1::SampleBuilder::buildSample() const
 void TestMesoCrystal1::SampleBuilder::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("meso_radius",& m_meso_radius);
-    getParameterPool()->registerParameter("surface_filling_ratio",& m_surface_filling_ratio);
-    getParameterPool()->registerParameter("meso_height",& m_meso_height);
-    getParameterPool()->registerParameter("sigma_meso_height",& m_sigma_meso_height);
-    getParameterPool()->registerParameter("sigma_meso_radius",& m_sigma_meso_radius);
-    getParameterPool()->registerParameter("lattice_length_a",& m_lattice_length_a);
-    getParameterPool()->registerParameter("nanoparticle_radius",& m_nanoparticle_radius);
-    getParameterPool()->registerParameter("sigma_nanoparticle_radius",& m_sigma_nanoparticle_radius);
-    getParameterPool()->registerParameter("sigma_lattice_length_a",& m_sigma_lattice_length_a);
-    getParameterPool()->registerParameter("roughness",& m_roughness);
+    getParameterPool()->registerParameter("meso_radius", &m_meso_radius);
+    getParameterPool()->registerParameter("surface_filling_ratio", &m_surface_filling_ratio);
+    getParameterPool()->registerParameter("meso_height", &m_meso_height);
+    getParameterPool()->registerParameter("sigma_meso_height", &m_sigma_meso_height);
+    getParameterPool()->registerParameter("sigma_meso_radius", &m_sigma_meso_radius);
+    getParameterPool()->registerParameter("lattice_length_a", &m_lattice_length_a);
+    getParameterPool()->registerParameter("nanoparticle_radius", &m_nanoparticle_radius);
+    getParameterPool()->registerParameter("sigma_nanoparticle_radius", &m_sigma_nanoparticle_radius);
+    getParameterPool()->registerParameter("sigma_lattice_length_a", &m_sigma_lattice_length_a);
+    getParameterPool()->registerParameter("roughness", &m_roughness);
 }
 
 MesoCrystal* TestMesoCrystal1::SampleBuilder::createMesoCrystal(double stacking_radius, complex_t n_particle,
diff --git a/App/src/TestMesoCrystal2.cpp b/App/src/TestMesoCrystal2.cpp
index dbc168b46da7c148d2934860053769f27d324316..77a97b5c763ab7bdd854c82e4f346b454d2087a0 100644
--- a/App/src/TestMesoCrystal2.cpp
+++ b/App/src/TestMesoCrystal2.cpp
@@ -581,21 +581,22 @@ ISample* TestMesoCrystal2::SampleBuilder::buildSample() const
     size_t n_max_phi_rotation_steps = 180;
     size_t n_alpha_rotation_steps = 1;
 
-    double alpha_step = 5.0*Units::degree/n_alpha_rotation_steps;
-    double alpha_start = - (n_alpha_rotation_steps/2.0)*alpha_step;
+//    double alpha_step = 5.0*Units::degree/n_alpha_rotation_steps;
+//    double alpha_start = - (n_alpha_rotation_steps/2.0)*alpha_step;
 
     double phi_step = 2*M_PI/3.0/n_max_phi_rotation_steps;
     double phi_start = 0.0;
+    Geometry::PTransform3D trafo;
     for (size_t i=0; i<n_max_phi_rotation_steps; ++i) {
         for (size_t j=0; j<n_alpha_rotation_steps; ++j) {
-            Geometry::RotateZ_3D transform1(phi_start + (double)i*phi_step);
-            Geometry::RotateY_3D transform2(alpha_start + j*alpha_step);
-            Geometry::ITransform3D *p_total_transform =
-                new Geometry::ITransform3D(transform1);
-//            particle_decoration.addParticle(createMesoCrystal(m_lattice_length_a,
-//                    n_particle_adapted,& ff_meso), p_total_transform, m_meso_height);
-            particle_decoration.addParticle(createMesoCrystal(m_lattice_length_a, m_lattice_length_c,
-                    n_particle_adapted,& ff_meso), p_total_transform, m_meso_height);
+            trafo = Geometry::PTransform3D(new
+               Geometry::RotateZ_3D(phi_start + i*phi_step));
+//            Geometry::RotateY_3D transform2(alpha_start + j*alpha_step);
+            particle_decoration.addParticle(
+                createMesoCrystal(
+                    m_lattice_length_a, m_lattice_length_c,
+                    n_particle_adapted, &ff_meso),
+                trafo, m_meso_height);
         }
     }
 
@@ -619,17 +620,17 @@ ISample* TestMesoCrystal2::SampleBuilder::buildSample() const
 void TestMesoCrystal2::SampleBuilder::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("meso_radius",& m_meso_radius);
-    getParameterPool()->registerParameter("surface_filling_ratio",& m_surface_filling_ratio);
-    getParameterPool()->registerParameter("meso_height",& m_meso_height);
-    getParameterPool()->registerParameter("sigma_meso_height",& m_sigma_meso_height);
-    getParameterPool()->registerParameter("sigma_meso_radius",& m_sigma_meso_radius);
-    getParameterPool()->registerParameter("lattice_length_a",& m_lattice_length_a);
-    getParameterPool()->registerParameter("lattice_length_c",& m_lattice_length_c);
-    getParameterPool()->registerParameter("nanoparticle_radius",& m_nanoparticle_radius);
-    getParameterPool()->registerParameter("sigma_nanoparticle_radius",& m_sigma_nanoparticle_radius);
-    getParameterPool()->registerParameter("sigma_lattice_length_a",& m_sigma_lattice_length_a);
-    getParameterPool()->registerParameter("roughness",& m_roughness);
+    getParameterPool()->registerParameter("meso_radius", &m_meso_radius);
+    getParameterPool()->registerParameter("surface_filling_ratio", &m_surface_filling_ratio);
+    getParameterPool()->registerParameter("meso_height", &m_meso_height);
+    getParameterPool()->registerParameter("sigma_meso_height", &m_sigma_meso_height);
+    getParameterPool()->registerParameter("sigma_meso_radius", &m_sigma_meso_radius);
+    getParameterPool()->registerParameter("lattice_length_a", &m_lattice_length_a);
+    getParameterPool()->registerParameter("lattice_length_c", &m_lattice_length_c);
+    getParameterPool()->registerParameter("nanoparticle_radius", &m_nanoparticle_radius);
+    getParameterPool()->registerParameter("sigma_nanoparticle_radius", &m_sigma_nanoparticle_radius);
+    getParameterPool()->registerParameter("sigma_lattice_length_a", &m_sigma_lattice_length_a);
+    getParameterPool()->registerParameter("roughness", &m_roughness);
 }
 
 //MesoCrystal* TestMesoCrystal2::SampleBuilder::createMesoCrystal(double stacking_radius, complex_t n_particle,
diff --git a/App/src/TestRootTree.cpp b/App/src/TestRootTree.cpp
index 0c8d1e5e97bb3a5c8678ec4d2ca13e6e77cb1786..5a1cc2a58a3f123935157a9791b6864e385b76d1 100644
--- a/App/src/TestRootTree.cpp
+++ b/App/src/TestRootTree.cpp
@@ -191,7 +191,7 @@ void TestRootTree::complex_read()
 
     TreeEventOutputData *event = 0;
 
-    tree->SetBranchAddress("Event",& event);
+    tree->SetBranchAddress("Event", &event);
 
     // reading data from the tree
     for(int i=0; i<tree->GetEntries(); i++) {
@@ -249,7 +249,7 @@ void TestRootTree::simple_write()
     tree->Branch("phi_f",&phi_f, "phi_f/D");
     tree->Branch("nev",&nev, "nev/I");
     //somevector = new std::vector<double>;
-    //tree->Branch("somevector","vector<double >",& somevector);
+    //tree->Branch("somevector","vector<double >", &somevector);
 
     TCanvas *c1 = new TCanvas("c1","c1",1024, 768);
 
diff --git a/App/src/TestRoughness.cpp b/App/src/TestRoughness.cpp
index 1abb477b03acda9fb057cb0e4355bab9899392ee..7057e17486afc83f2bdf56ea60ceefbd81a863c1 100644
--- a/App/src/TestRoughness.cpp
+++ b/App/src/TestRoughness.cpp
@@ -100,7 +100,7 @@ void TestRoughness::DrawProfile()
             TestMethod method = m_TestMethods[i_method];
             (this->*method)();
 
-            vgr_profile[i_method][i_set] = new TGraph(npx,& m_vx[0],& m_vzcorr[0]);
+            vgr_profile[i_method][i_set] = new TGraph(npx, &m_vx[0], &m_vzcorr[0]);
         }
     }
 
@@ -190,7 +190,7 @@ void TestRoughness::GetProfileXZ_MatrixMethod()
         throw std::runtime_error("TestRoughness::GetProfileXZ() -> Panic! Can't decompose matrix.");
     }
 
-    TVectorD zUnCorr(npx,& m_vzuncorr[0]);
+    TVectorD zUnCorr(npx, &m_vzuncorr[0]);
     TVectorD zCorr(npx);
     zCorr = (chol.GetU()) * zUnCorr;
 
diff --git a/App/src/TestToySimulation.cpp b/App/src/TestToySimulation.cpp
index 089b9c0c734cf9fb0e1028989cb0713e4e73b1f9..c48fd1200acce33051907c231c6619393f085dcf 100644
--- a/App/src/TestToySimulation.cpp
+++ b/App/src/TestToySimulation.cpp
@@ -56,7 +56,7 @@ void ToySimulation::init_parameters()
     for(size_t i=0; i<pars.size(); ++i) {
         std::ostringstream ostr;
         ostr << "par"<< i;
-        getParameterPool()->registerParameter(ostr.str(),& pars[i]);
+        getParameterPool()->registerParameter(ostr.str(), &pars[i]);
     }
 }
 
diff --git a/App/src/fp_exception_glibc_extension.c b/App/src/fp_exception_glibc_extension.c
index ce03f1fabcc20eccc07918b8fd76582074f284fd..541285400608b5d690ec7357b799f0db21df61b8 100644
--- a/App/src/fp_exception_glibc_extension.c
+++ b/App/src/fp_exception_glibc_extension.c
@@ -319,7 +319,7 @@ int main (int argc, char **argv)
     feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
     
     // set handler
-//     if (sigaction(SIGFPE,& act, (struct sigaction *)0) != 0)
+//     if (sigaction(SIGFPE, &act, (struct sigaction *)0) != 0)
 //     {
 //         perror("Yikes");
 //         exit(-1);
diff --git a/App/src/main.cpp b/App/src/main.cpp
index d577fe576977a9db2b9a7a036ce500e2e23349ce..2b60676bb3d894e3a093ce2cd5091039b9a0820a 100644
--- a/App/src/main.cpp
+++ b/App/src/main.cpp
@@ -75,7 +75,7 @@ int main(int argc, char **argv)
         for(; it!= FunctionalTestFactory::end(); ++it) {
             if( command_line_options.find( (*it).first ) )
                 FunctionalTestFactory::execute(
-                    (*it).first,& command_line_options );
+                    (*it).first, &command_line_options );
         }
     }
 
diff --git a/BornAgain.pro.user b/BornAgain.pro.user
new file mode 100644
index 0000000000000000000000000000000000000000..f931a6a633141e2f9ee6f9ae748632858e51dc62
--- /dev/null
+++ b/BornAgain.pro.user
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE QtCreatorProject>
+<!-- Written by Qt Creator 2.5.0, 2013-03-28T16:43:45. -->
+<qtcreator>
+ <data>
+  <variable>ProjectExplorer.Project.ActiveTarget</variable>
+  <value type="int">0</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.EditorSettings</variable>
+  <valuemap type="QVariantMap">
+   <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
+   <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
+   <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
+    <value type="QString" key="language">Cpp</value>
+    <valuemap type="QVariantMap" key="value">
+     <value type="QString" key="CurrentPreferences">CppGlobal</value>
+    </valuemap>
+   </valuemap>
+   <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
+    <value type="QString" key="language">QmlJS</value>
+    <valuemap type="QVariantMap" key="value">
+     <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
+    </valuemap>
+   </valuemap>
+   <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
+   <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
+   <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
+   <value type="int" key="EditorConfiguration.IndentSize">4</value>
+   <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
+   <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
+   <value type="int" key="EditorConfiguration.PaddingMode">1</value>
+   <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
+   <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
+   <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
+   <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
+   <value type="int" key="EditorConfiguration.TabSize">8</value>
+   <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
+   <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
+   <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
+   <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
+   <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
+   <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.PluginSettings</variable>
+  <valuemap type="QVariantMap"/>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Target.0</variable>
+  <valuemap type="QVariantMap">
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Target.DesktopTarget</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+    <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:{e408d2c6-c65c-4fa1-b98f-01f2440252e9}</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 (System) Release</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/jwu/BornAgain</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">4</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
+    <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:{e408d2c6-c65c-4fa1-b98f-01f2440252e9}</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/jwu/BornAgain</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">2</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
+    <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:{e408d2c6-c65c-4fa1-b98f-01f2440252e9}</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/jwu/BornAgain</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">2</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+    <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">App</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">App/App.pro</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
+    <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
+    <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">TestCore</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase">2</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">Tests/UnitTests/TestCore/TestCore.pro</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
+    <valuelist type="QVariantList" key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Target.1</variable>
+  <valuemap type="QVariantMap">
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Embedded Linux</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Embedded Linux</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinux.EmbeddedLinuxTarget</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
+    <value type="QString" key="ProjectExplorer.BuildCOnfiguration.ToolChain">ProjectExplorer.ToolChain.Gcc:{e408d2c6-c65c-4fa1-b98f-01f2440252e9}</value>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
+      <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
+      <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
+     </valuemap>
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
+    </valuemap>
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
+      <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
+      <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
+    <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
+    <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 (System) Release</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
+    <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/jwu/BornAgain</value>
+    <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId">4</value>
+    <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
+    <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
+     <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
+      <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files via SFTP</value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+      <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinux.DirectUploadStep</value>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles"/>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts"/>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths"/>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedSysroots"/>
+      <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes"/>
+      <value type="bool" key="RemoteLinux.GenericDirectUploadStep.Incremental">true</value>
+     </valuemap>
+     <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
+    </valuemap>
+    <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Remote Linux Host</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">DeployToGenericLinux</value>
+    <value type="qulonglong" key="Qt4ProjectManager.MaemoRunConfiguration.DeviceId">0</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
+    <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">App (on Remote Device)</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinuxRunConfiguration</value>
+    <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
+    <value type="int" key="Qt4ProjectManager.MaemoRunConfiguration.BaseEnvironmentBase">1</value>
+    <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile">App/App.pro</value>
+    <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
+    <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
+    <value type="QString" key="RemoteLinux.RunConfig.WorkingDirectory"></value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
+    <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">TestCore (on Remote Device)</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">RemoteLinuxRunConfiguration</value>
+    <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.Arguments"></value>
+    <value type="int" key="Qt4ProjectManager.MaemoRunConfiguration.BaseEnvironmentBase">1</value>
+    <value type="QString" key="Qt4ProjectManager.MaemoRunConfiguration.ProFile">Tests/UnitTests/TestCore/TestCore.pro</value>
+    <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.UserEnvironmentChanges"/>
+    <value type="QString" key="RemoteLinux.RunConfig.AlternateRemoteExecutable"></value>
+    <value type="bool" key="RemoteLinux.RunConfig.UseAlternateRemoteExecutable">false</value>
+    <value type="QString" key="RemoteLinux.RunConfig.WorkingDirectory"></value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
+  </valuemap>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.TargetCount</variable>
+  <value type="int">2</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
+  <value type="QString">{145d5f38-77bf-4d59-bdc7-dc52328e50dc}</value>
+ </data>
+ <data>
+  <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+  <value type="int">11</value>
+ </data>
+</qtcreator>
diff --git a/Core/Algorithms/src/Beam.cpp b/Core/Algorithms/src/Beam.cpp
index ee0e1126311b5c83163d846a791dc650979f1339..172c080cd58273dee2040e6ce6aec2c6c3f93bb8 100644
--- a/Core/Algorithms/src/Beam.cpp
+++ b/Core/Algorithms/src/Beam.cpp
@@ -58,5 +58,5 @@ void Beam::setCentralK(double lambda, double alpha_i, double phi_i)
 void Beam::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("intensity",& m_intensity);
+    getParameterPool()->registerParameter("intensity", &m_intensity);
 }
diff --git a/Core/Algorithms/src/DiffuseDWBASimulation.cpp b/Core/Algorithms/src/DiffuseDWBASimulation.cpp
index 5a023405d966b87f93adb1546551525a68a85b18..b68552431a724e2297a9243379f90ad9410a5784 100644
--- a/Core/Algorithms/src/DiffuseDWBASimulation.cpp
+++ b/Core/Algorithms/src/DiffuseDWBASimulation.cpp
@@ -15,6 +15,7 @@
 
 #include "DiffuseDWBASimulation.h"
 #include "FormFactorDWBAConstZ.h"
+#include "MessageService.h"
 
 #define SQR(x) ((x)*(x))
 
@@ -22,6 +23,7 @@
 
 void DiffuseDWBASimulation::run()
 {
+    msglog(MSG::DEBUG) << "DiffuseDWBASimulation::run()";
     // Set diffuse terms.
     std::vector<DiffuseFormFactorTerm*> diffuse_terms;
     size_t nbr_heights = 50;
@@ -79,6 +81,7 @@ void DiffuseDWBASimulation::initDiffuseFormFactorTerms(
         size_t nbr_heights,
         size_t samples_per_particle)
 {
+    msglog(MSG::DEBUG) << "DiffuseDWBASimulation::init...()";
     for (size_t i=0; i<m_np_infos.size(); ++i) {
         DiffuseParticleInfo *p_diff_info = m_np_infos[i];
         Particle *p_particle = p_diff_info->getParticle()->clone();
diff --git a/Core/Algorithms/src/FTDistributions.cpp b/Core/Algorithms/src/FTDistributions.cpp
index 774ce9bd7b0ad5be7725481f60ff80ca6f672a13..b8983049f87332c7bb324733fff81a0a5fdba231 100644
--- a/Core/Algorithms/src/FTDistributions.cpp
+++ b/Core/Algorithms/src/FTDistributions.cpp
@@ -46,6 +46,6 @@ void FTDistribution2DCauchy::transformToStarBasis(double qX, double qY,
 void FTDistribution2DCauchy::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("omega_x",& m_omega_x);
-    getParameterPool()->registerParameter("omega_y",& m_omega_y);
+    getParameterPool()->registerParameter("omega_x", &m_omega_x);
+    getParameterPool()->registerParameter("omega_y", &m_omega_y);
 }
diff --git a/Core/Algorithms/src/IOutputDataNormalizer.cpp b/Core/Algorithms/src/IOutputDataNormalizer.cpp
index f245c48ecd411e39c67c7be03604326982fae1c8..8a3e5de306dab7e686f7d69326fc89461dac0da4 100644
--- a/Core/Algorithms/src/IOutputDataNormalizer.cpp
+++ b/Core/Algorithms/src/IOutputDataNormalizer.cpp
@@ -20,8 +20,8 @@
 void OutputDataNormalizer::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("scale",& m_scale);
-    getParameterPool()->registerParameter("shift",& m_shift);
+    getParameterPool()->registerParameter("scale", &m_scale);
+    getParameterPool()->registerParameter("shift", &m_shift);
 }
 
 OutputDataNormalizer *OutputDataNormalizer::clone() const
diff --git a/Core/Algorithms/src/LayerDecoratorDWBASimulation.cpp b/Core/Algorithms/src/LayerDecoratorDWBASimulation.cpp
index 469c3a1b6308ccb59f2934473d81eddca85d6fc7..0a082fe48be1dc59df3aedf5b34cac746c26ef9d 100644
--- a/Core/Algorithms/src/LayerDecoratorDWBASimulation.cpp
+++ b/Core/Algorithms/src/LayerDecoratorDWBASimulation.cpp
@@ -19,7 +19,7 @@
 #include "MessageService.h"
 
 LayerDecoratorDWBASimulation::LayerDecoratorDWBASimulation(
-        const LayerDecorator *p_layer_decorator)
+    const LayerDecorator *p_layer_decorator)
 {
     mp_layer_decorator = p_layer_decorator->clone();
     mp_diffuseDWBA = mp_layer_decorator->createDiffuseDWBASimulation();
@@ -33,6 +33,7 @@ LayerDecoratorDWBASimulation::~LayerDecoratorDWBASimulation()
 
 void LayerDecoratorDWBASimulation::init(const Simulation& simulation)
 {
+    msglog(MSG::DEBUG) << "LayerDecoratorDWBASimulation::init()\n";
     DWBASimulation::init(simulation);
     if (mp_diffuseDWBA) {
         mp_diffuseDWBA->init(simulation);
@@ -41,6 +42,7 @@ void LayerDecoratorDWBASimulation::init(const Simulation& simulation)
 
 void LayerDecoratorDWBASimulation::run()
 {
+    msglog(MSG::DEBUG) << "LayerDecoratorDWBASimulation::run()\n";
     IInterferenceFunctionStrategy *p_strategy = createAndInitStrategy();
 
     calculateCoherentIntensity(p_strategy);
@@ -49,7 +51,8 @@ void LayerDecoratorDWBASimulation::run()
     delete p_strategy;
 }
 
-IInterferenceFunctionStrategy *LayerDecoratorDWBASimulation::createAndInitStrategy() const
+IInterferenceFunctionStrategy
+    *LayerDecoratorDWBASimulation::createAndInitStrategy() const
 {
     LayerDecoratorStrategyBuilder builder(*mp_layer_decorator, *mp_simulation, m_sim_params);
     if (mp_RT_function) builder.setReflectionTransmissionFunction(*mp_RT_function);
@@ -57,8 +60,9 @@ IInterferenceFunctionStrategy *LayerDecoratorDWBASimulation::createAndInitStrate
     return p_strategy;
 }
 
-std::vector<IFormFactor *> LayerDecoratorDWBASimulation::createDWBAFormFactors() const
+std::vector<IFormFactor*> LayerDecoratorDWBASimulation::createDWBAFormFactors() const
 {
+    msglog(MSG::DEBUG) << "LayerDecoratorDWBASimulation::create...\n";
     std::vector<IFormFactor *> result;
     const IDecoration *p_decoration = mp_layer_decorator->getDecoration();
     complex_t n_layer = mp_layer_decorator->getRefractiveIndex();
@@ -70,14 +74,17 @@ std::vector<IFormFactor *> LayerDecoratorDWBASimulation::createDWBAFormFactors()
             p_decoration->getParticleInfo(particle_index)->getPTransform3D();
 
         p_particle->setAmbientRefractiveIndex(n_layer);
-        complex_t wavevector_scattering_factor = M_PI/getWaveLength()/getWaveLength();
+        complex_t wavevector_scattering_factor =
+            M_PI/getWaveLength()/getWaveLength();
 
         IFormFactor *ff_particle = p_particle->createFormFactor();
-        IFormFactor  *ff_transformed(0);
+        IFormFactor *ff_transformed(0);
         if(transform) {
+            std::cout << "DEBUG: createDWBAff's with transform\n";
             ff_transformed = new FormFactorDecoratorTransformation(
                 ff_particle, transform);
-        } else{
+        } else {
+            std::cout << "DEBUG: createDWBAff's without transform\n";
             ff_transformed = ff_particle;
         }
 
diff --git a/Core/Algorithms/src/MultiLayerDWBASimulation.cpp b/Core/Algorithms/src/MultiLayerDWBASimulation.cpp
index d2ea6e7428a4cc23484c561cabda6b207d1c5ba1..65343ce6715ecb5b54d4115887bf1abdfbbe18c7 100644
--- a/Core/Algorithms/src/MultiLayerDWBASimulation.cpp
+++ b/Core/Algorithms/src/MultiLayerDWBASimulation.cpp
@@ -42,6 +42,7 @@ MultiLayerDWBASimulation::~MultiLayerDWBASimulation()
 
 void MultiLayerDWBASimulation::init(const Simulation& simulation)
 {
+    msglog(MSG::DEBUG) << "MultiLayerDWBASimulation::init()";
     DWBASimulation::init(simulation);
     for (size_t i=0; i<mp_multi_layer->getNumberOfLayers(); ++i) {
         LayerDWBASimulation *p_layer_dwba_sim =
@@ -107,6 +108,7 @@ void MultiLayerDWBASimulation::run()
     // run through layers and construct T,R functions
     for(size_t i_layer=0;
         i_layer<mp_multi_layer->getNumberOfLayers(); ++i_layer) {
+        msglog(MSG::DEBUG) << "MultiLayerDWBASimulation::run() -> Layer " << i_layer;
         DoubleToPairOfComplexMap RT_map;
         DoubleToComplexMap Kz_map;
 
@@ -138,6 +140,7 @@ void MultiLayerDWBASimulation::run()
     } // i_layer
 
     if(mp_roughness_dwba_simulation) {
+        msglog(MSG::DEBUG) << "MultiLayerDWBASimulation::run() -> roughness";
         mp_roughness_dwba_simulation->run();
         addDWBAIntensity( mp_roughness_dwba_simulation->getDWBAIntensity() );
     }
diff --git a/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp b/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp
index 20ea53e25a86f9dcf671260776832647451e4468..7ebaae4165870fa5f893c844a1d9ef2ed2e12d32 100644
--- a/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp
+++ b/Core/Algorithms/src/MultiLayerRoughnessDWBASimulation.cpp
@@ -40,9 +40,6 @@ void MultiLayerRoughnessDWBASimulation::setReflectionTransmissionFunction(
 
 void MultiLayerRoughnessDWBASimulation::run()
 {
-    const std::string s_phi_f("phi_f");
-    const std::string s_alpha_f("alpha_f");
-
     kvector_t m_ki_real(m_ki.x().real(), m_ki.y().real(), m_ki.z().real());
     double lambda = 2*M_PI/m_ki_real.mag();
 
@@ -50,9 +47,9 @@ void MultiLayerRoughnessDWBASimulation::run()
     while ( it_intensity != m_dwba_intensity.end() )
     {
         double phi_f = getDWBAIntensity().getValueOfAxis(
-            s_phi_f, it_intensity.getIndex());
+            "phi_f", it_intensity.getIndex());
         double alpha_f = getDWBAIntensity().getValueOfAxis(
-            s_alpha_f, it_intensity.getIndex());
+            "alpha_f", it_intensity.getIndex());
         cvector_t k_f;
         k_f.setLambdaAlphaPhi(lambda, alpha_f, phi_f);
         *it_intensity = evaluate(m_ki, k_f, -m_alpha_i, alpha_f);
@@ -86,7 +83,6 @@ double MultiLayerRoughnessDWBASimulation::evaluate(
         if(rough) {
             autocorr += std::norm( rterm[i] ) * std::norm( sterm[i] ) *
                 rough->getSpectralFun(q);
-        } else {
         }
     }
 
@@ -109,7 +105,7 @@ double MultiLayerRoughnessDWBASimulation::evaluate(
 complex_t MultiLayerRoughnessDWBASimulation::get_refractive_term(
     size_t ilayer) const
 {
-    complex_t n1 = mp_multi_layer->getLayer(ilayer)->getRefractiveIndex();
+    complex_t n1 = mp_multi_layer->getLayer(ilayer)  ->getRefractiveIndex();
     complex_t n2 = mp_multi_layer->getLayer(ilayer+1)->getRefractiveIndex();
     return n1*n1-n2*n2;
 }
@@ -130,9 +126,9 @@ complex_t MultiLayerRoughnessDWBASimulation::get_sum4terms(
         getRoughness()->getSigma();
     double sigma2 = -0.5*sigma*sigma;
     complex_t term1 = ai_RT.second * af_RT.second * std::exp( sigma2*qz1*qz1 );
-    complex_t term2 = ai_RT.second * af_RT.first * std::exp( sigma2*qz2*qz2 );
-    complex_t term3 = ai_RT.first * af_RT.second * std::exp( sigma2*qz3*qz3 );
-    complex_t term4 = ai_RT.first * af_RT.first * std::exp( sigma2*qz4*qz4 );
+    complex_t term2 = ai_RT.second * af_RT.first  * std::exp( sigma2*qz2*qz2 );
+    complex_t term3 = ai_RT.first  * af_RT.second * std::exp( sigma2*qz3*qz3 );
+    complex_t term4 = ai_RT.first  * af_RT.first  * std::exp( sigma2*qz4*qz4 );
 
     return term1 + term2 + term3 + term4;
 }
diff --git a/Core/Algorithms/src/ResolutionFunction2DSimple.cpp b/Core/Algorithms/src/ResolutionFunction2DSimple.cpp
index 3ef27f27dc26fd4d5ea0ecfad6ec7d595f28cfcf..4f85477713e9ab915f1e95c223ab9950c99da2d9 100644
--- a/Core/Algorithms/src/ResolutionFunction2DSimple.cpp
+++ b/Core/Algorithms/src/ResolutionFunction2DSimple.cpp
@@ -50,6 +50,6 @@ double ResolutionFunction2DSimple::evaluateCDF(double x, double y) const
 void ResolutionFunction2DSimple::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("sigma_x",& m_sigma_x);
-    getParameterPool()->registerParameter("sigma_y",& m_sigma_y);
+    getParameterPool()->registerParameter("sigma_x", &m_sigma_x);
+    getParameterPool()->registerParameter("sigma_y", &m_sigma_y);
 }
diff --git a/Core/Fitting/src/FitSuite.cpp b/Core/Fitting/src/FitSuite.cpp
index 8216bab1171d366f752a548861b103099c0ff6c6..f6fe33abb162148aaf95daecc828689a12bca808 100644
--- a/Core/Fitting/src/FitSuite.cpp
+++ b/Core/Fitting/src/FitSuite.cpp
@@ -114,10 +114,10 @@ void FitSuite::runFit()
 void FitSuite::minimize()
 {
     // initializing minimizer with fitting functions
-    IMinimizer::function_chi2_t fun_chi2 = boost::bind(&FitSuiteChiSquaredFunction::evaluate,& m_function_chi2, _1);
+    IMinimizer::function_chi2_t fun_chi2 = boost::bind(&FitSuiteChiSquaredFunction::evaluate, &m_function_chi2, _1);
     m_minimizer->setChiSquaredFunction( fun_chi2, m_fit_parameters.size());
 
-    IMinimizer::function_gradient_t fun_gradient = boost::bind(&FitSuiteGradientFunction::evaluate,& m_function_gradient, _1, _2, _3);
+    IMinimizer::function_gradient_t fun_gradient = boost::bind(&FitSuiteGradientFunction::evaluate, &m_function_gradient, _1, _2, _3);
     m_minimizer->setGradientFunction( fun_gradient, m_fit_parameters.size(), m_fit_objects.getSizeOfDataSet() );
 
     // initializing minimizer's parameters with the list of local fit parameters
diff --git a/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h b/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h
index 824fb341be6731e2d4b431e20c97777de7ee74d2..ecb54c8fe8093677dbce0511d7aa7ef93b5d1d29 100644
--- a/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h
+++ b/Core/FormFactors/inc/FormFactorDecoratorDebyeWaller.h
@@ -83,8 +83,8 @@ class FormFactorDecoratorDebyeWaller : public IFormFactorDecorator
     //! Registers some class members for later access via parameter pool
     virtual void init_parameters() {
         getParameterPool()->clear();
-        getParameterPool()->registerParameter("hfactor",& m_h_dw_factor);
-        getParameterPool()->registerParameter("rfactor",& m_r_dw_factor);
+        getParameterPool()->registerParameter("hfactor", &m_h_dw_factor);
+        getParameterPool()->registerParameter("rfactor", &m_r_dw_factor);
     }
 
  private:
diff --git a/Core/FormFactors/src/FormFactorBox.cpp b/Core/FormFactors/src/FormFactorBox.cpp
index e7cc4d507f926d35e6f8ecac722ce1146b16ff3d..b5cd338285e3df294628ae19d59f22bb27cc11af 100644
--- a/Core/FormFactors/src/FormFactorBox.cpp
+++ b/Core/FormFactors/src/FormFactorBox.cpp
@@ -32,7 +32,7 @@ complex_t FormFactorBox::evaluate_for_q(const cvector_t& q) const
 void FormFactorBox::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
+    getParameterPool()->registerParameter("radius", &m_radius);
     getParameterPool()->registerParameter( "width", & m_width);
-    getParameterPool()->registerParameter("height",& m_height);
+    getParameterPool()->registerParameter("height", &m_height);
 }
diff --git a/Core/FormFactors/src/FormFactorCone.cpp b/Core/FormFactors/src/FormFactorCone.cpp
index ff41ee9937931745e094310a84912b76b7a08f9c..61e4bc97aacd747e935f8344651a2b5a3d6f3a05 100644
--- a/Core/FormFactors/src/FormFactorCone.cpp
+++ b/Core/FormFactors/src/FormFactorCone.cpp
@@ -34,8 +34,8 @@ FormFactorCone::FormFactorCone(double radius,double height,double alpha)
 void FormFactorCone::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
-    getParameterPool()->registerParameter("height",& m_height);
+    getParameterPool()->registerParameter("radius", &m_radius);
+    getParameterPool()->registerParameter("height", &m_height);
     getParameterPool()->registerParameter("alpha", & m_alpha);
 }
 
diff --git a/Core/FormFactors/src/FormFactorCylinder.cpp b/Core/FormFactors/src/FormFactorCylinder.cpp
index c70bbc094e84ae931abf6be5d15d0dfbcad1a730..d6a2a494249fb1eee901ed82f927966f8d483dc8 100644
--- a/Core/FormFactors/src/FormFactorCylinder.cpp
+++ b/Core/FormFactors/src/FormFactorCylinder.cpp
@@ -32,8 +32,8 @@ FormFactorCylinder::FormFactorCylinder(double height, double radius)
 void FormFactorCylinder::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("radius",& m_radius);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("radius", &m_radius);
 }
 
 FormFactorCylinder* FormFactorCylinder::clone() const
diff --git a/Core/FormFactors/src/FormFactorEllipsoid.cpp b/Core/FormFactors/src/FormFactorEllipsoid.cpp
index a1512ace982ced89eb7971dfe26866426f715c94..233727eeda8b32662b60dbba246a6b3a2e89503f 100644
--- a/Core/FormFactors/src/FormFactorEllipsoid.cpp
+++ b/Core/FormFactors/src/FormFactorEllipsoid.cpp
@@ -52,8 +52,8 @@ complex_t FormFactorEllipsoid::evaluate_for_q(const cvector_t& q) const
 void FormFactorEllipsoid::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
+    getParameterPool()->registerParameter("radius", &m_radius);
     getParameterPool()->registerParameter("width", & m_width);
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("alpha" ,& m_alpha);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("alpha" , &m_alpha);
 }
diff --git a/Core/FormFactors/src/FormFactorFullSphere.cpp b/Core/FormFactors/src/FormFactorFullSphere.cpp
index b2334fbbf83c1b3e762f1deb25dc6c38aecdb95f..de0ffa5828c7d596121120446df8363149063d00 100644
--- a/Core/FormFactors/src/FormFactorFullSphere.cpp
+++ b/Core/FormFactors/src/FormFactorFullSphere.cpp
@@ -30,7 +30,7 @@ FormFactorFullSphere::FormFactorFullSphere(double radius)
 void FormFactorFullSphere::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
+    getParameterPool()->registerParameter("radius", &m_radius);
 }
 
 
diff --git a/Core/FormFactors/src/FormFactorFullSpheroid.cpp b/Core/FormFactors/src/FormFactorFullSpheroid.cpp
index 48637bd8a24317893d359230b53556f34710f439..1b6623902888492889cb242dea1e3c3bdea3cae3 100644
--- a/Core/FormFactors/src/FormFactorFullSpheroid.cpp
+++ b/Core/FormFactors/src/FormFactorFullSpheroid.cpp
@@ -30,8 +30,8 @@ FormFactorFullSpheroid::FormFactorFullSpheroid(double radius, double height )
 void FormFactorFullSpheroid::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
-    getParameterPool()->registerParameter("height",& m_height);
+    getParameterPool()->registerParameter("radius", &m_radius);
+    getParameterPool()->registerParameter("height", &m_height);
 }
 
 FormFactorFullSpheroid* FormFactorFullSpheroid::clone() const
diff --git a/Core/FormFactors/src/FormFactorGauss.cpp b/Core/FormFactors/src/FormFactorGauss.cpp
index b73fd322017eab820a750f244bcc94ea96d96a6f..efdbad259965e219a1726106d660e734a6afe10a 100644
--- a/Core/FormFactors/src/FormFactorGauss.cpp
+++ b/Core/FormFactors/src/FormFactorGauss.cpp
@@ -41,8 +41,8 @@ FormFactorGauss::FormFactorGauss(double height, double width)
 void FormFactorGauss::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("width",& m_width);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("width", &m_width);
 }
 
 FormFactorGauss* FormFactorGauss::clone() const
diff --git a/Core/FormFactors/src/FormFactorHemiSpheroid.cpp b/Core/FormFactors/src/FormFactorHemiSpheroid.cpp
index c7cbfd078e61c26f339345f9598d6e2ba2a1014d..299bbe4812fadddfa2d2a0fd76f0693069ca895c 100644
--- a/Core/FormFactors/src/FormFactorHemiSpheroid.cpp
+++ b/Core/FormFactors/src/FormFactorHemiSpheroid.cpp
@@ -37,9 +37,9 @@ FormFactorHemiSpheroid::FormFactorHemiSpheroid(
 void FormFactorHemiSpheroid::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
+    getParameterPool()->registerParameter("radius", &m_radius);
     getParameterPool()->registerParameter("width", & m_width);
-    getParameterPool()->registerParameter("height",& m_height);
+    getParameterPool()->registerParameter("height", &m_height);
 }
 
 FormFactorHemiSpheroid* FormFactorHemiSpheroid::clone() const
diff --git a/Core/FormFactors/src/FormFactorLorentz.cpp b/Core/FormFactors/src/FormFactorLorentz.cpp
index f46d0e51bb4d13e650717782ad2a3f48683724a1..207dab49ad775a97d5d01fda0bf9acd641f0b6ac 100644
--- a/Core/FormFactors/src/FormFactorLorentz.cpp
+++ b/Core/FormFactors/src/FormFactorLorentz.cpp
@@ -39,8 +39,8 @@ FormFactorLorentz::FormFactorLorentz(double height, double width)
 void FormFactorLorentz::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("width",& m_width);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("width", &m_width);
 }
 
 FormFactorLorentz* FormFactorLorentz::clone() const
diff --git a/Core/FormFactors/src/FormFactorParallelepiped.cpp b/Core/FormFactors/src/FormFactorParallelepiped.cpp
index 6f25b66f224eaa0a7ba907728f4ebb3674dda490..c7eddc82e672185e17ab857c9d5a341c7d1dd171 100644
--- a/Core/FormFactors/src/FormFactorParallelepiped.cpp
+++ b/Core/FormFactors/src/FormFactorParallelepiped.cpp
@@ -45,6 +45,6 @@ complex_t FormFactorParallelepiped::evaluate_for_q(const cvector_t& q) const
 void FormFactorParallelepiped::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("radius",& m_radius);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("radius", &m_radius);
 }
diff --git a/Core/FormFactors/src/FormFactorPrism3.cpp b/Core/FormFactors/src/FormFactorPrism3.cpp
index 2dac6b15148b17175f011730fc8517ff5b65c67f..7c4f9cecfd5e79dff1e8839223d9ec0c3a07f137 100644
--- a/Core/FormFactors/src/FormFactorPrism3.cpp
+++ b/Core/FormFactors/src/FormFactorPrism3.cpp
@@ -30,8 +30,8 @@ FormFactorPrism3::FormFactorPrism3(double height, double half_side)
 void FormFactorPrism3::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("half_side",& m_half_side);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("half_side", &m_half_side);
 }
 
 FormFactorPrism3* FormFactorPrism3::clone() const
diff --git a/Core/FormFactors/src/FormFactorPrism6.cpp b/Core/FormFactors/src/FormFactorPrism6.cpp
index 6b86a857b10dae34f9d8a10b8fadc139abe12cbe..cb06d56903674411fda91d0b9a3b70fb4f220a4e 100644
--- a/Core/FormFactors/src/FormFactorPrism6.cpp
+++ b/Core/FormFactors/src/FormFactorPrism6.cpp
@@ -30,8 +30,8 @@ FormFactorPrism6::FormFactorPrism6(double height, double half_side)
 void FormFactorPrism6::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("half_side",& m_half_side);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("half_side", &m_half_side);
 }
 
 FormFactorPrism6* FormFactorPrism6::clone() const
diff --git a/Core/FormFactors/src/FormFactorPyramid.cpp b/Core/FormFactors/src/FormFactorPyramid.cpp
index dae87fd1334cbac7fedd98d582066ab25c41d02b..eab4d234a3991a3aad893c66ac53eb2fe01a255f 100644
--- a/Core/FormFactors/src/FormFactorPyramid.cpp
+++ b/Core/FormFactors/src/FormFactorPyramid.cpp
@@ -30,9 +30,9 @@ FormFactorPyramid::FormFactorPyramid(
 void FormFactorPyramid::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("height",& m_height);
-    getParameterPool()->registerParameter("half_side",& m_half_side);
-    getParameterPool()->registerParameter("alpha",& m_alpha);
+    getParameterPool()->registerParameter("height", &m_height);
+    getParameterPool()->registerParameter("half_side", &m_half_side);
+    getParameterPool()->registerParameter("alpha", &m_alpha);
 }
 
 FormFactorPyramid* FormFactorPyramid::clone() const
diff --git a/Core/FormFactors/src/FormFactorSphere.cpp b/Core/FormFactors/src/FormFactorSphere.cpp
index f15d44bd005320c89aa4739959138d56e77c7bd7..c8afde7fda86f558f8059d8ea2ab08612d0f59d0 100644
--- a/Core/FormFactors/src/FormFactorSphere.cpp
+++ b/Core/FormFactors/src/FormFactorSphere.cpp
@@ -38,8 +38,8 @@ FormFactorSphere::FormFactorSphere(double radius, double height)
 void FormFactorSphere::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("radius",& m_radius);
-    getParameterPool()->registerParameter("height",& m_height);
+    getParameterPool()->registerParameter("radius", &m_radius);
+    getParameterPool()->registerParameter("height", &m_height);
 }
 
 //! Integrand for complex formfactor.
diff --git a/Core/Geometry/inc/ITransform3D.h b/Core/Geometry/inc/ITransform3D.h
index 961d0aa4583a37f009d353e779d12ba4008987b9..5ca6298b8fbf1768c238e2ae5acb11c8b8a360c7 100644
--- a/Core/Geometry/inc/ITransform3D.h
+++ b/Core/Geometry/inc/ITransform3D.h
@@ -16,7 +16,6 @@
 #define GEOMETRY_ITRANSFROM3D_H
 
 #include "BasicVector3D.h"
-#include <iostream> // DEBUG
 #include <boost/shared_ptr.hpp>
 
 namespace Geometry {
@@ -27,24 +26,22 @@ typedef boost::shared_ptr<class ITransform3D> PTransform3D;
 
 class ITransform3D {
  public:
-//    //! Default constructor, sets the identity transformation.
-//    ITransform3D() {}
 
     virtual ~ITransform3D() {}
 
     //! Returns the inverse transformation.
-    virtual PTransform3D inverse() const =0;
-//    { return *this; }
+    virtual PTransform3D inverse() const
+    { return PTransform3D( new ITransform3D() ); }
     
     //! Return transformed vector _v_.
     virtual BasicVector3D<double>
-        transformed(const BasicVector3D<double>& v) const;
-//    { std::cout << "DEBUG: trafo<double> identity\n"; return v; }
+        transformed(const BasicVector3D<double>& v) const
+    { return v; }
 
     //! Return transformed vector _v_.
     virtual BasicVector3D<complex_t>
-        transformed(const BasicVector3D<complex_t>& v) const;
-//    { std::cout << "DEBUG: trafo<cmplx> identity\n"; return v; }
+        transformed(const BasicVector3D<complex_t>& v) const
+    { return v; }
 
 };
  
diff --git a/Core/Geometry/inc/Rotate3D.h b/Core/Geometry/inc/Rotate3D.h
index b610ccd8e95e702323092ef4f6a23b073dcbcfe0..ecc94172e4d5b17bd14bede79dcf66cbbf29831c 100644
--- a/Core/Geometry/inc/Rotate3D.h
+++ b/Core/Geometry/inc/Rotate3D.h
@@ -30,24 +30,28 @@ class RotateY_3D : public ITransform3D {
     RotateY_3D(double a)
         : m_ca( std::cos(a) ), m_sa( std::sin(a) ) {}
 
+    virtual ~RotateY_3D() {}
+
     //! Return inverse transform.
-    virtual PTransform3D inverse() const
-    { return new PTransform3D( RotateY_3D( m_ca, -m_sa ) ); }
+    PTransform3D inverse() const
+    { return PTransform3D( new RotateY_3D( m_ca, -m_sa ) ); }
 
     //! Return rotated vector _v_.
-    virtual BasicVector3D<double> transformed(const BasicVector3D<double>& v) const
-    {   std::cout << "DEBUG: trafo<double> rotate y\n"; 
-        return BasicVector3D<double>( m_ca*v.x() + m_sa*v.z(),
+    BasicVector3D<double> transformed(const BasicVector3D<double>& v) const
+    {   return BasicVector3D<double>( m_ca*v.x() + m_sa*v.z(),
                                       v.y(),
-                                      -m_sa*v.x() + m_ca*v.z() );
+                                     -m_sa*v.x() + m_ca*v.z() );
     }
 
     //! Return rotated vector _v_: avoid complex implementation unless needed.
-    virtual BasicVector3D<complex_t>
+
+    //! QUESTION: Can we avoid this duplication, using template?
+    //!
+    BasicVector3D<complex_t>
         transformed(const BasicVector3D<complex_t>& v) const
-    { (void)v;  // to prevent unused-variable warning
-        throw NotImplementedException("Rotate_3D::transformed<complex_t> -> "
-                                    "not implemented" );
+    {   return BasicVector3D<complex_t>( m_ca*v.x() + m_sa*v.z(),
+                                         v.y(),
+                                        -m_sa*v.x() + m_ca*v.z() );
     }
 
  private:
@@ -67,14 +71,15 @@ class RotateZ_3D : public ITransform3D {
     RotateZ_3D(double a)
         : m_ca( std::cos(a) ), m_sa( std::sin(a) ) {}
 
+    virtual ~RotateZ_3D() {}
+
     //! Return inverse transform.
-    virtual ITransform3D inverse() const
-    { return RotateZ_3D( m_ca, -m_sa ); }
+    virtual PTransform3D inverse() const
+    { return PTransform3D( new RotateZ_3D( m_ca, -m_sa )); }
 
     //! Return rotated vector _v_.
     virtual BasicVector3D<double> transformed(const BasicVector3D<double>& v) const
-    {   std::cout << "DEBUG: trafo<double> rotate z\n"; 
-        return BasicVector3D<double>( m_ca*v.x() - m_sa*v.y(),
+    {   return BasicVector3D<double>( m_ca*v.x() - m_sa*v.y(),
                                       m_sa*v.x() + m_ca*v.y(),
                                       v.z()                    );
     }
@@ -82,9 +87,9 @@ class RotateZ_3D : public ITransform3D {
     //! Return rotated vector _v_: avoid complex implementation unless needed.
     virtual BasicVector3D<complex_t>
         transformed(const BasicVector3D<complex_t>& v) const
-    { (void)v;  // to prevent unused-variable warning
-        throw NotImplementedException("RotateZ_3D::transformed<complex_t> -> "
-                                    "not implemented" );
+    {   return BasicVector3D<complex_t>( m_ca*v.x() - m_sa*v.y(),
+                                         m_sa*v.x() + m_ca*v.y(),
+                                         v.z()                    );
     }
 
  private:
diff --git a/Core/PythonAPI/inc/PythonListConverter.h b/Core/PythonAPI/inc/PythonListConverter.h
index 22546d6db5b1433a7b0202bacda8719945b1fe38..f1794fd73152a4a4557cbcb88d7f44d438a3f464 100644
--- a/Core/PythonAPI/inc/PythonListConverter.h
+++ b/Core/PythonAPI/inc/PythonListConverter.h
@@ -41,7 +41,7 @@ struct Vector_from_python_list
     Vector_from_python_list()
     {
         bp::converter::registry::push_back(&Vector_from_python_list<T>::convertible
-                                           ,& Vector_from_python_list<T>::construct
+                                           , &Vector_from_python_list<T>::construct
                                            , bp::type_id<std::vector<T> >() );
     }
 
diff --git a/Core/PythonAPI/src/Bin1D.pypp.cpp b/Core/PythonAPI/src/Bin1D.pypp.cpp
index 8499255cb223cc635d0aaf2f50749b0dc9af3350..a587105e39e33f1f8b9ed02fdd0f4d9eef1bd983 100644
--- a/Core/PythonAPI/src/Bin1D.pypp.cpp
+++ b/Core/PythonAPI/src/Bin1D.pypp.cpp
@@ -83,8 +83,8 @@ void register_Bin1D_class(){
         .def( 
             "getMidPoint"
             , (double ( ::Bin1D::* )(  ) const)(& ::Bin1D::getMidPoint ) )    
-        .def_readwrite( "m_lower",& Bin1D::m_lower )    
-        .def_readwrite( "m_upper",& Bin1D::m_upper )    
+        .def_readwrite( "m_lower", &Bin1D::m_lower )    
+        .def_readwrite( "m_upper", &Bin1D::m_upper )    
         .def( bp::self != bp::self )    
         .def( bp::self == bp::self );
 
diff --git a/Core/PythonAPI/src/Bin1DCVector.pypp.cpp b/Core/PythonAPI/src/Bin1DCVector.pypp.cpp
index 53bec5c8f54c6797c2797847321059de58fd5077..c89b2ae1a28956d5e24c81c7ae282f3ab176f359 100644
--- a/Core/PythonAPI/src/Bin1DCVector.pypp.cpp
+++ b/Core/PythonAPI/src/Bin1DCVector.pypp.cpp
@@ -88,7 +88,7 @@ void register_Bin1DCVector_class(){
         .def( 
             "getMidPoint"
             , (::cvector_t ( ::Bin1DCVector::* )(  ) const)(& ::Bin1DCVector::getMidPoint ) )    
-        .def_readwrite( "m_q_lower",& Bin1DCVector::m_q_lower )    
-        .def_readwrite( "m_q_upper",& Bin1DCVector::m_q_upper );
+        .def_readwrite( "m_q_lower", &Bin1DCVector::m_q_lower )    
+        .def_readwrite( "m_q_upper", &Bin1DCVector::m_q_upper );
 
 }
diff --git a/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp b/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp
index adfd51f0cbcc89c39ae45d269de885749aacc523..d05974e490a8aba2bec394917ef666e3856b4bbd 100644
--- a/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp
+++ b/Core/PythonAPI/src/Lattice2DIFParameters.pypp.cpp
@@ -80,13 +80,13 @@ namespace bp = boost::python;
 void register_Lattice2DIFParameters_class(){
 
     bp::class_< Lattice2DIFParameters >( "Lattice2DIFParameters", bp::init< >() )    
-        .def_readwrite( "m_angle",& Lattice2DIFParameters::m_angle )    
-        .def_readwrite( "m_corr_length_1",& Lattice2DIFParameters::m_corr_length_1 )    
-        .def_readwrite( "m_corr_length_2",& Lattice2DIFParameters::m_corr_length_2 )    
-        .def_readwrite( "m_domain_size_1",& Lattice2DIFParameters::m_domain_size_1 )    
-        .def_readwrite( "m_domain_size_2",& Lattice2DIFParameters::m_domain_size_2 )    
-        .def_readwrite( "m_length_1",& Lattice2DIFParameters::m_length_1 )    
-        .def_readwrite( "m_length_2",& Lattice2DIFParameters::m_length_2 )    
-        .def_readwrite( "m_xi",& Lattice2DIFParameters::m_xi );
+        .def_readwrite( "m_angle", &Lattice2DIFParameters::m_angle )    
+        .def_readwrite( "m_corr_length_1", &Lattice2DIFParameters::m_corr_length_1 )    
+        .def_readwrite( "m_corr_length_2", &Lattice2DIFParameters::m_corr_length_2 )    
+        .def_readwrite( "m_domain_size_1", &Lattice2DIFParameters::m_domain_size_1 )    
+        .def_readwrite( "m_domain_size_2", &Lattice2DIFParameters::m_domain_size_2 )    
+        .def_readwrite( "m_length_1", &Lattice2DIFParameters::m_length_1 )    
+        .def_readwrite( "m_length_2", &Lattice2DIFParameters::m_length_2 )    
+        .def_readwrite( "m_xi", &Lattice2DIFParameters::m_xi );
 
 }
diff --git a/Core/PythonAPI/src/OpticalFresnel.pypp.cpp b/Core/PythonAPI/src/OpticalFresnel.pypp.cpp
index 41bd2aa1e0da927566db8cae74c2d647d416d4a4..48f64c9935f970b1c000a63320ad46a4788f638e 100644
--- a/Core/PythonAPI/src/OpticalFresnel.pypp.cpp
+++ b/Core/PythonAPI/src/OpticalFresnel.pypp.cpp
@@ -120,14 +120,14 @@ void register_OpticalFresnel_class(){
         bp::scope OpticalFresnel_scope( OpticalFresnel_exposer );
         bp::class_< OpticalFresnel::FresnelCoeff >( "FresnelCoeff", bp::init< >() )    
             .def( bp::self == bp::self )    
-            .def_readwrite( "R",& OpticalFresnel::FresnelCoeff::R )    
-            .def_readwrite( "T",& OpticalFresnel::FresnelCoeff::T )    
-            .def_readwrite( "X",& OpticalFresnel::FresnelCoeff::X )    
-            .def_readwrite( "kz",& OpticalFresnel::FresnelCoeff::kz )    
-            .def_readwrite( "r",& OpticalFresnel::FresnelCoeff::r )    
-            .def_readwrite( "rb",& OpticalFresnel::FresnelCoeff::rb )    
-            .def_readwrite( "t",& OpticalFresnel::FresnelCoeff::t )    
-            .def_readwrite( "tb",& OpticalFresnel::FresnelCoeff::tb );
+            .def_readwrite( "R", &OpticalFresnel::FresnelCoeff::R )    
+            .def_readwrite( "T", &OpticalFresnel::FresnelCoeff::T )    
+            .def_readwrite( "X", &OpticalFresnel::FresnelCoeff::X )    
+            .def_readwrite( "kz", &OpticalFresnel::FresnelCoeff::kz )    
+            .def_readwrite( "r", &OpticalFresnel::FresnelCoeff::r )    
+            .def_readwrite( "rb", &OpticalFresnel::FresnelCoeff::rb )    
+            .def_readwrite( "t", &OpticalFresnel::FresnelCoeff::t )    
+            .def_readwrite( "tb", &OpticalFresnel::FresnelCoeff::tb );
         bp::class_< OpticalFresnel::MultiLayerCoeff >( "MultiLayerCoeff" )    
             .def( 
                 "clear"
diff --git a/Core/PythonAPI/src/SimulationParameters.pypp.cpp b/Core/PythonAPI/src/SimulationParameters.pypp.cpp
index d2e898ba7fdbad0973a3f37f54aa05acbafd9f33..c7398be011bce30a4d70476af3967449fd9b4aef 100644
--- a/Core/PythonAPI/src/SimulationParameters.pypp.cpp
+++ b/Core/PythonAPI/src/SimulationParameters.pypp.cpp
@@ -102,9 +102,9 @@ void register_SimulationParameters_class(){
             .value("PARA1DFINITE", SimulationParameters::PARA1DFINITE)
             .export_values()
             ;
-        SimulationParameters_exposer.def_readwrite( "me_framework",& SimulationParameters::me_framework );
-        SimulationParameters_exposer.def_readwrite( "me_if_approx",& SimulationParameters::me_if_approx );
-        SimulationParameters_exposer.def_readwrite( "me_lattice_type",& SimulationParameters::me_lattice_type );
+        SimulationParameters_exposer.def_readwrite( "me_framework", &SimulationParameters::me_framework );
+        SimulationParameters_exposer.def_readwrite( "me_if_approx", &SimulationParameters::me_if_approx );
+        SimulationParameters_exposer.def_readwrite( "me_lattice_type", &SimulationParameters::me_lattice_type );
     }
 
 }
diff --git a/Core/Samples/inc/ISample.h b/Core/Samples/inc/ISample.h
index 0c3622c0a845c41d690902c62d74457c2bc8b74a..32ee427f9216c96df09e2780575dc96ee4e02d98 100644
--- a/Core/Samples/inc/ISample.h
+++ b/Core/Samples/inc/ISample.h
@@ -27,8 +27,8 @@ class DWBASimulation;
 class ISample : public IParameterized, public ICloneable
 {
  public:
-    ISample() { }
-    virtual ~ISample() { }
+    ISample() {}
+    virtual ~ISample() {}
 
     //! Returns pointer to "this", if it is composite sample (to overload).
     virtual ICompositeSample *getCompositeSample() { return 0; }
@@ -52,7 +52,8 @@ class ISample : public IParameterized, public ICloneable
             int copy_number=-1) const;
 
  protected:
-    virtual void print(std::ostream& ostr) const { ostr << getName() << " " << this << " " << m_parameters; }
+    virtual void print(std::ostream& ostr) const
+    { ostr << getName() << " " << this << " " << m_parameters; }
 };
 
 #endif // ISAMPLE_H
diff --git a/Core/Samples/inc/ParticleDecoration.h b/Core/Samples/inc/ParticleDecoration.h
index a8ef11d377be57e83c585aa2a50387c2f035ec70..14d3f463e433f37c2d848e14baa78bc6202f0b31 100644
--- a/Core/Samples/inc/ParticleDecoration.h
+++ b/Core/Samples/inc/ParticleDecoration.h
@@ -35,17 +35,24 @@ class ParticleDecoration : public IDecoration
 
     virtual ParticleDecoration *clone() const;
 
-    //! Adds particle giving depth and transformation
+    //! Adds generic particle, *-version.
     void addParticle(
-        const Particle& p_particle, const Geometry::PTransform3D& transform,
+        Particle *p_particle, const Geometry::PTransform3D& transform,
         double depth=0, double abundance=1.0);
 
-    //! Adds particle giving depth
+    //! Adds generic particle, &-version.
     void addParticle(
-        const Particle& particle, double depth=0.0, double abundance=1.0);
+        const Particle& p_particle, const Geometry::PTransform3D& transform,
+        double depth=0, double abundance=1.0);
+
+    //! Adds particle without rotation, *-version.
     void addParticle(
         Particle *p_particle, double depth=0.0, double abundance=1.0);
 
+    //! Adds particle without rotation, &-version.
+    void addParticle(
+        const Particle& particle, double depth=0.0, double abundance=1.0);
+
     //! Adds particle info
     void addParticleInfo(const ParticleInfo& info);
 
diff --git a/Core/Samples/inc/ParticleInfo.h b/Core/Samples/inc/ParticleInfo.h
index 1a9261c3bec722e6845dd9fe3e18cea058607ff0..44cb10b3a93338ab389e9b2770a65fd92dd671be 100644
--- a/Core/Samples/inc/ParticleInfo.h
+++ b/Core/Samples/inc/ParticleInfo.h
@@ -32,9 +32,9 @@ class ParticleInfo : public ICompositeSample
                  const Geometry::PTransform3D& transform,
                  double depth=0, double abundance=0);
     ParticleInfo(Particle *p_particle,
-                 double depth=0, double abundance=0)
-    { *this = ParticleInfo(p_particle, Geometry::PTransform3D(),
-                                  depth, abundance); }
+                 double depth=0, double abundance=0);
+    ParticleInfo(const Particle& p_particle,
+                 double depth=0, double abundance=0);
 
     virtual ~ParticleInfo();
 
diff --git a/Core/Samples/inc/PositionParticleInfo.h b/Core/Samples/inc/PositionParticleInfo.h
index e040f44a9c2853876ba755e30ee15439e75cf80d..435c3f794f651008a44cfafc15e3dc7d31d98918 100644
--- a/Core/Samples/inc/PositionParticleInfo.h
+++ b/Core/Samples/inc/PositionParticleInfo.h
@@ -27,11 +27,11 @@ class PositionParticleInfo : public ParticleInfo
 {
  public:
     PositionParticleInfo(
-        Particle *p_particle, Geometry::ITransform3D *p_transform,
+        Particle *p_particle, const Geometry::PTransform3D& transform,
         kvector_t position, double abundance=0);
 
     PositionParticleInfo(
-        const Particle& particle, const Geometry::ITransform3D& transform,
+        const Particle& particle, const Geometry::PTransform3D& transform,
         kvector_t position, double abundance=0);
 
     PositionParticleInfo(
diff --git a/Core/Samples/src/ISample.cpp b/Core/Samples/src/ISample.cpp
index 1a9fc1e6fbede3a6d26c397c9cc7ca75f5598090..9ce9ae3c273b3903d7f1c0822e2603e464b8df16 100644
--- a/Core/Samples/src/ISample.cpp
+++ b/Core/Samples/src/ISample.cpp
@@ -20,7 +20,9 @@
 
 ISample *ISample::clone() const
 {
-    throw NotImplementedException("ISample::clone() -> Error! Method is not implemented");
+    throw NotImplementedException(
+        "ISample::clone() -> "
+        "Error! Method is not implemented");
 }
 
 void ISample::print_structure()
@@ -46,9 +48,12 @@ void ISample::print_structure()
 
 //! Adds parameters from local pool to external pool and call recursion over direct children
 
-std::string ISample::addParametersToExternalPool(std::string path, ParameterPool *external_pool, int copy_number) const
+std::string ISample::addParametersToExternalPool(
+    std::string path, ParameterPool *external_pool, int copy_number) const
 {
-    std::string  new_path = IParameterized::addParametersToExternalPool(path, external_pool, copy_number);
+    std::string new_path =
+        IParameterized::addParametersToExternalPool(
+            path, external_pool, copy_number);
 
     // going through direct children of given sample and copy they parameters recursively
     const ICompositeSample *sample = getCompositeSample();
@@ -57,13 +62,15 @@ std::string ISample::addParametersToExternalPool(std::string path, ParameterPool
         // Here we need some default mechanism to handle cases with many children with same name.
         // Lets run through all direct children and save their names
         Utils::StringUsageMap strUsageMap;
-        for(ICompositeSample::const_iterator_t it=sample->begin_shallow(); it!=sample->end_shallow(); ++it) {
+        for(ICompositeSample::const_iterator_t it =
+                sample->begin_shallow(); it!=sample->end_shallow(); ++it) {
             strUsageMap.add( new_path +(*it)->getName() ); // saving children name
         }
 
         // Now we run through direct children again, and assign copy number for all children with same name
         Utils::StringUsageMap strUsageMap2;
-        for(ICompositeSample::const_iterator_t it=sample->begin_shallow(); it!=sample->end_shallow(); ++it) {
+        for(ICompositeSample::const_iterator_t it=
+                sample->begin_shallow(); it!=sample->end_shallow(); ++it) {
             std::string children_name = new_path +(*it)->getName();
             strUsageMap2.add(children_name);
             int ncopy = strUsageMap2[children_name]-1; // staring from 0
diff --git a/Core/Samples/src/InterferenceFunction1DParaCrystal.cpp b/Core/Samples/src/InterferenceFunction1DParaCrystal.cpp
index 5cb4495b4260d29786de8a33162427fe931aead8..22ab605e45ddd3889f87d77bac1c7db2dcc5dcff 100644
--- a/Core/Samples/src/InterferenceFunction1DParaCrystal.cpp
+++ b/Core/Samples/src/InterferenceFunction1DParaCrystal.cpp
@@ -31,9 +31,9 @@ InterferenceFunction1DParaCrystal::InterferenceFunction1DParaCrystal(double peak
 void InterferenceFunction1DParaCrystal::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("peak_distance",& m_peak_distance);
-    getParameterPool()->registerParameter("width",& m_width);
-    getParameterPool()->registerParameter("corr_length",& m_corr_length);
+    getParameterPool()->registerParameter("peak_distance", &m_peak_distance);
+    getParameterPool()->registerParameter("width", &m_width);
+    getParameterPool()->registerParameter("corr_length", &m_corr_length);
 }
 
 double InterferenceFunction1DParaCrystal::evaluate(const cvector_t& q) const
diff --git a/Core/Samples/src/InterferenceFunction2DParaCrystal.cpp b/Core/Samples/src/InterferenceFunction2DParaCrystal.cpp
index efb71fcecc016654280477246b1edb7b588c425e..f884d5911e24e498391800e260d2f24b6cac0cfb 100644
--- a/Core/Samples/src/InterferenceFunction2DParaCrystal.cpp
+++ b/Core/Samples/src/InterferenceFunction2DParaCrystal.cpp
@@ -117,13 +117,13 @@ void InterferenceFunction2DParaCrystal::transformToPrincipalAxes(double qx,
 void InterferenceFunction2DParaCrystal::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("lattice_length_1",& m_lattice_lengths[0]);
-    getParameterPool()->registerParameter("lattice_length_2",& m_lattice_lengths[1]);
-    getParameterPool()->registerParameter("lattice_angle",& m_alpha_lattice);
-    getParameterPool()->registerParameter("lattice_orientation",& m_xi);
-    getParameterPool()->registerParameter("corr_length",& m_corr_length);
-    getParameterPool()->registerParameter("domain_size_1",& m_domain_sizes[0]);
-    getParameterPool()->registerParameter("domain_size_2",& m_domain_sizes[1]);
+    getParameterPool()->registerParameter("lattice_length_1", &m_lattice_lengths[0]);
+    getParameterPool()->registerParameter("lattice_length_2", &m_lattice_lengths[1]);
+    getParameterPool()->registerParameter("lattice_angle", &m_alpha_lattice);
+    getParameterPool()->registerParameter("lattice_orientation", &m_xi);
+    getParameterPool()->registerParameter("corr_length", &m_corr_length);
+    getParameterPool()->registerParameter("domain_size_1", &m_domain_sizes[0]);
+    getParameterPool()->registerParameter("domain_size_2", &m_domain_sizes[1]);
 }
 
 double InterferenceFunction2DParaCrystal::interferenceForXi(double xi, void *params) const
diff --git a/Core/Samples/src/Lattice.cpp b/Core/Samples/src/Lattice.cpp
index ec4964fd2420e442ead62abfb8b5e7fdf7b91de0..1728c0d1a53a30a32b78d22857de5dd85aa440ae 100644
--- a/Core/Samples/src/Lattice.cpp
+++ b/Core/Samples/src/Lattice.cpp
@@ -222,7 +222,7 @@ void Lattice::computeInverseVectors(const kvector_t& v1, const kvector_t& v2,
     gsl_matrix_set(p_basisMatrix, 2, 1, v2.z());
     gsl_matrix_set(p_basisMatrix, 2, 2, v3.z());
 
-    gsl_linalg_LU_decomp(p_basisMatrix, p_perm,& s);
+    gsl_linalg_LU_decomp(p_basisMatrix, p_perm, &s);
     gsl_linalg_LU_invert(p_basisMatrix, p_perm, p_inverseMatrix);
 
     o1.setX(gsl_matrix_get(p_inverseMatrix, 0, 0));
diff --git a/Core/Samples/src/Layer.cpp b/Core/Samples/src/Layer.cpp
index e389fa522be7c3f03b6e5ff1b9f28c813d4655d5..b264f17fb1064b37725a434dd5f0beb2f20396a1 100644
--- a/Core/Samples/src/Layer.cpp
+++ b/Core/Samples/src/Layer.cpp
@@ -48,7 +48,7 @@ Layer::Layer(const Layer& other) : ICompositeSample()
 void Layer::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("thickness",& m_thickness);
+    getParameterPool()->registerParameter("thickness", &m_thickness);
 }
 
 Layer *Layer::clone() const
diff --git a/Core/Samples/src/LayerRoughness.cpp b/Core/Samples/src/LayerRoughness.cpp
index cc48f552566d178d275f8ef406f6d964f07d3944..e5ec892a41c903c02a1e74dd037db3f1f5c52ab9 100644
--- a/Core/Samples/src/LayerRoughness.cpp
+++ b/Core/Samples/src/LayerRoughness.cpp
@@ -44,9 +44,9 @@ LayerRoughness *LayerRoughness::clone() const
 void LayerRoughness::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("sigma",& m_sigma);
-    getParameterPool()->registerParameter("hurst",& m_hurstParameter);
-    getParameterPool()->registerParameter("corrlength",& m_latteralCorrLength);
+    getParameterPool()->registerParameter("sigma", &m_sigma);
+    getParameterPool()->registerParameter("hurst", &m_hurstParameter);
+    getParameterPool()->registerParameter("corrlength", &m_latteralCorrLength);
 }
 
 
diff --git a/Core/Samples/src/MultiLayer.cpp b/Core/Samples/src/MultiLayer.cpp
index 2741046e30f746a60a939ec47e4160abbf1af159..0bde64de144728ff21d33e8fdc08073f7d499b99 100644
--- a/Core/Samples/src/MultiLayer.cpp
+++ b/Core/Samples/src/MultiLayer.cpp
@@ -37,7 +37,7 @@ MultiLayer::~MultiLayer()
 void MultiLayer::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("crossCorrLength",& m_crossCorrLength);
+    getParameterPool()->registerParameter("crossCorrLength", &m_crossCorrLength);
 }
 
 /* ************************************************************************* */
diff --git a/Core/Samples/src/ParticleDecoration.cpp b/Core/Samples/src/ParticleDecoration.cpp
index e79583662e9271b4734390a397c97dd3293bee5d..f71c43db4d06ad77523e2615c01dfd25a5da3bb2 100644
--- a/Core/Samples/src/ParticleDecoration.cpp
+++ b/Core/Samples/src/ParticleDecoration.cpp
@@ -69,7 +69,17 @@ ParticleDecoration* ParticleDecoration::clone() const
     return p_new;
 }
 
-//! Adds generic particle.
+//! Adds generic particle, *-version.
+
+void ParticleDecoration::addParticle(
+    Particle* p_particle, const Geometry::PTransform3D& transform,
+    double depth, double abundance)
+{
+    addAndRegisterParticleInfo(
+        new ParticleInfo(p_particle, transform, depth, abundance));
+}
+
+//! Adds generic particle, &-version.
 
 void ParticleDecoration::addParticle(
     const Particle& p_particle, const Geometry::PTransform3D& transform,
@@ -79,22 +89,22 @@ void ParticleDecoration::addParticle(
         new ParticleInfo(p_particle.clone(), transform, depth, abundance));
 }
 
-//! Adds particle without rotation.
+//! Adds particle without rotation, *-version.
 
 void ParticleDecoration::addParticle(
     Particle* p_particle,
     double depth, double abundance)
 {
-    addParticle(p_particle, 0, depth, abundance);
+    addParticle(p_particle, Geometry::PTransform3D(), depth, abundance);
 }
 
-//! Adds particle without rotation (alternate form).
+//! Adds particle without rotation, &-version.
 
 void ParticleDecoration::addParticle(
     const Particle& p_particle,
     double depth, double abundance)
 {
-    addParticle(p_particle.clone(), 0, depth, abundance);
+    addParticle(p_particle.clone(), Geometry::PTransform3D(), depth, abundance);
 }
 
 //! Adds particle info
diff --git a/Core/Samples/src/ParticleInfo.cpp b/Core/Samples/src/ParticleInfo.cpp
index 4274b4b990c84508609ef5b8cac78b8a00420e3d..6168c81561291989ffd9f2f28ae2ec7f024d5a57 100644
--- a/Core/Samples/src/ParticleInfo.cpp
+++ b/Core/Samples/src/ParticleInfo.cpp
@@ -16,10 +16,10 @@
 #include "ParticleInfo.h"
 
 ParticleInfo::ParticleInfo(
-    Particle* p_particle, const Geometry::PTransform3D transform,
+    Particle* p_particle, const Geometry::PTransform3D& transform,
     double depth, double abundance)
     : mp_particle(p_particle)
-    , mp_transform(transform)
+    , mP_transform(transform)
     , m_depth(depth)
     , m_abundance(abundance)
 {
@@ -34,7 +34,35 @@ ParticleInfo::ParticleInfo(
     double depth,
     double abundance)
     : mp_particle(p_particle.clone())
-    , mp_transform(transform)
+    , mP_transform(transform)
+    , m_depth(depth)
+    , m_abundance(abundance)
+{
+    setName("ParticleInfo");
+    registerChild(mp_particle);
+    init_parameters();
+}
+
+ParticleInfo::ParticleInfo(
+    Particle *p_particle,
+    double depth,
+    double abundance)
+    : mp_particle(p_particle)
+    , mP_transform(Geometry::PTransform3D())
+    , m_depth(depth)
+    , m_abundance(abundance)
+{
+    setName("ParticleInfo");
+    registerChild(mp_particle);
+    init_parameters();
+}
+
+ParticleInfo::ParticleInfo(
+    const Particle& p_particle,
+    double depth,
+    double abundance)
+    : mp_particle(p_particle.clone())
+    , mP_transform(Geometry::PTransform3D())
     , m_depth(depth)
     , m_abundance(abundance)
 {
@@ -46,20 +74,17 @@ ParticleInfo::ParticleInfo(
 ParticleInfo::~ParticleInfo()
 {
     delete mp_particle;
-    delete mp_transform;
 }
 
 //! Registers some class members for later access via parameter pool
 void ParticleInfo::init_parameters()
 {
     getParameterPool()->clear();
-    getParameterPool()->registerParameter("depth",& m_depth);
+    getParameterPool()->registerParameter("depth", &m_depth);
 }
 
 ParticleInfo *ParticleInfo::clone() const
 {
-    Geometry::ITransform3D *transform(0);
-    if(mp_transform) transform = new Geometry::ITransform3D(*mp_transform);
     return new ParticleInfo(
-        mp_particle->clone(), transform, m_depth, m_abundance);
+        mp_particle->clone(), m_depth, m_abundance);
 }
diff --git a/Core/Samples/src/PositionParticleInfo.cpp b/Core/Samples/src/PositionParticleInfo.cpp
index 0f29125a6fe3d78de1bc6cb19def61adcb3200c1..44d64a805fa28ff620e2b62777a396fcdb09c56f 100644
--- a/Core/Samples/src/PositionParticleInfo.cpp
+++ b/Core/Samples/src/PositionParticleInfo.cpp
@@ -17,9 +17,9 @@
 #include <iostream>
 
 PositionParticleInfo::PositionParticleInfo(
-    Particle* p_particle, Geometry::ITransform3D* p_transform,
+    Particle* p_particle, const Geometry::PTransform3D& transform,
     kvector_t position, double abundance)
-    : ParticleInfo(p_particle, p_transform, position.z(), abundance)
+    : ParticleInfo(p_particle, transform, position.z(), abundance)
     , m_pos_x(position.x())
     , m_pos_y(position.y())
 {
@@ -28,10 +28,9 @@ PositionParticleInfo::PositionParticleInfo(
 }
 
 PositionParticleInfo::PositionParticleInfo(
-    const Particle& particle, const Geometry::ITransform3D& transform,
+    const Particle& particle, const Geometry::PTransform3D& transform,
     kvector_t position, double abundance)
-    : ParticleInfo(particle.clone(), new Geometry::ITransform3D(transform),
-                   position.z(), abundance)
+    : ParticleInfo(particle.clone(), transform, position.z(), abundance)
     , m_pos_x(position.x())
     , m_pos_y(position.y())
 {
@@ -41,7 +40,7 @@ PositionParticleInfo::PositionParticleInfo(
 
 PositionParticleInfo::PositionParticleInfo(
     Particle* p_particle, kvector_t position, double abundance)
-    : ParticleInfo(p_particle, 0, position.z(), abundance)
+    : ParticleInfo(p_particle, position.z(), abundance)
     , m_pos_x(position.x())
     , m_pos_y(position.y())
 {
@@ -51,7 +50,7 @@ PositionParticleInfo::PositionParticleInfo(
 
 PositionParticleInfo::PositionParticleInfo(
     const Particle& particle, kvector_t position, double abundance)
-    : ParticleInfo(particle.clone(), 0, position.z(), abundance)
+    : ParticleInfo(particle.clone(), position.z(), abundance)
     , m_pos_x(position.x())
     , m_pos_y(position.y())
 {
@@ -61,11 +60,9 @@ PositionParticleInfo::PositionParticleInfo(
 
 PositionParticleInfo* PositionParticleInfo::clone() const
 {
-    Geometry::ITransform3D *p_transform(0);
-    if(mp_transform) p_transform = new Geometry::ITransform3D(*mp_transform);
     kvector_t position(m_pos_x, m_pos_y, -m_depth);
     return new PositionParticleInfo(
-        mp_particle->clone(), p_transform, position, m_abundance);
+        mp_particle->clone(), mP_transform, position, m_abundance);
 }
 
 void PositionParticleInfo::setPosition(kvector_t position)
diff --git a/Core/Tools/inc/MemberFunctionIntegrator.h b/Core/Tools/inc/MemberFunctionIntegrator.h
index c1a1714a257e849c508e6bb094d9c2dbf5009a19..717103986a11f8384a1d2079589dfb0b6409567c 100644
--- a/Core/Tools/inc/MemberFunctionIntegrator.h
+++ b/Core/Tools/inc/MemberFunctionIntegrator.h
@@ -97,7 +97,7 @@ template<class C> double MemberFunctionIntegrator<C>::integrate(
 
     double result, error;
     gsl_integration_qag(&f, lmin, lmax, 1e-10, 1e-8, 50, 1,
-                        m_gsl_workspace,& result,& error);
+                        m_gsl_workspace, &result, &error);
 
     return result;
 }
diff --git a/Core/Tools/src/MessageService.cpp b/Core/Tools/src/MessageService.cpp
index f72d082ee33a69966e58ebb50f0d1f321d2f1163..343c052f3d0ad89ac80fc263076e9f5f9007f575 100644
--- a/Core/Tools/src/MessageService.cpp
+++ b/Core/Tools/src/MessageService.cpp
@@ -18,7 +18,7 @@ std::string Logger::NowTime()
     gettimeofday(&tv, 0);
     char buffer[100];
     tm r;
-    strftime(buffer, sizeof(buffer), "%X", localtime_r(&tv.tv_sec,& r));
+    strftime(buffer, sizeof(buffer), "%X", localtime_r(&tv.tv_sec, &r));
     char result[100];
     sprintf(result, "%s.%06ld", buffer, (long)tv.tv_usec);
     return result;
diff --git a/Fit/Factory/inc/ROOTGSLNLSMinimizer.h b/Fit/Factory/inc/ROOTGSLNLSMinimizer.h
index 0221599e497d6e53a1614bc9c0e3dd3adbc2f292..84695f783a7f8f1f8b9072f5d16e4d5730c1b39f 100644
--- a/Fit/Factory/inc/ROOTGSLNLSMinimizer.h
+++ b/Fit/Factory/inc/ROOTGSLNLSMinimizer.h
@@ -300,7 +300,7 @@ class GSLMultiFit {
       if (c == 0) return edm;
       gsl_vector * tmp = gsl_vector_alloc( fSolver->fdf->p );
       int status =   gsl_blas_dgemv(CblasNoTrans, 1.0, fCov, fVec, 0.,tmp);
-      if (status == 0) status |= gsl_blas_ddot(fVec, tmp,& edm);
+      if (status == 0) status |= gsl_blas_ddot(fVec, tmp, &edm);
       gsl_vector_free(tmp);
       if (status != 0) return -1;
       // need to divide by 2 ??
diff --git a/Fit/Factory/src/ROOTGSLNLSMinimizer.cpp b/Fit/Factory/src/ROOTGSLNLSMinimizer.cpp
index 5149654c5f5b5409b02d0944812fd98ac4d9c9b5..e5eacbd9541593b0c6336528ad76028e600fd8df 100644
--- a/Fit/Factory/src/ROOTGSLNLSMinimizer.cpp
+++ b/Fit/Factory/src/ROOTGSLNLSMinimizer.cpp
@@ -52,9 +52,9 @@ class FitTransformFunction : public FitMethodFunction {
       const double * xExt = fTransform->Transformation(x);
       if ( g == 0) return fFunc.DataElement( xExt, i );
       // use gradient
-      double val =  fFunc.DataElement( xExt, i,& fGrad[0]);
+      double val =  fFunc.DataElement( xExt, i, &fGrad[0]);
       // transform gradient
-      fTransform->GradientTransformation( x,& fGrad.front(), g);
+      fTransform->GradientTransformation( x, &fGrad.front(), g);
       return val;
    }
 
@@ -280,7 +280,7 @@ bool GSLNLSMinimizer::Minimize() {
          fResiduals[ires] = LSResidualFunc(*trFunc, ires);
       }
 
-      trFunc->InvTransformation(&fValues.front(),& startValues[0]);
+      trFunc->InvTransformation(&fValues.front(), &startValues[0]);
       fNFree = trFunc->NDim(); // actual dimension
       assert(fValues.size() == trFunc->NTot() );
       startValues.resize( fNFree );
@@ -294,7 +294,7 @@ bool GSLNLSMinimizer::Minimize() {
 //       //stepSize += fSteps[i];
 //       if (fSteps[i] < stepSize) stepSize = fSteps[i];
 
-   int iret = fGSLMultiFit->Set( fResiduals,& startValues.front() );
+   int iret = fGSLMultiFit->Set( fResiduals, &startValues.front() );
    if (iret) {
       MATH_ERROR_MSGVAL("GSLNLSMinimizer::Minimize","Error setting the residual functions ",iret);
       return false;
@@ -383,7 +383,7 @@ bool GSLNLSMinimizer::Minimize() {
    if (minFound) {
 
       if (trFunc.get() != 0) {
-         trFunc->MatrixTransformation(x, fGSLMultiFit->CovarMatrix(),& fCovMatrix[0] );
+         trFunc->MatrixTransformation(x, fGSLMultiFit->CovarMatrix(), &fCovMatrix[0] );
       }
       else {
          const double * m =  fGSLMultiFit->CovarMatrix();
diff --git a/Fit/Factory/src/ROOTGSLSimAnMinimizer.cpp b/Fit/Factory/src/ROOTGSLSimAnMinimizer.cpp
index 5ccd137d4d0439b9a8b96c407d7551c4303a6f40..30ddc51acbd894f080c57587574a560d10f7baf1 100644
--- a/Fit/Factory/src/ROOTGSLSimAnMinimizer.cpp
+++ b/Fit/Factory/src/ROOTGSLSimAnMinimizer.cpp
@@ -159,10 +159,10 @@ bool GSLSimAnMinimizer::Minimize() {
 
       trFunc =  new MinimTransformFunction ( new MultiNumGradFunction( *fObjFunc), fVarTypes, fValues, fBounds );
 
-      trFunc->InvTransformation(&fValues.front(),& xvar[0]);
+      trFunc->InvTransformation(&fValues.front(), &xvar[0]);
 
       // need to transform also  the steps
-      trFunc->InvStepTransformation(&fValues.front(),& fSteps.front(),& steps[0]);
+      trFunc->InvStepTransformation(&fValues.front(), &fSteps.front(), &steps[0]);
 
       xvar.resize( trFunc->NDim() );
       steps.resize( trFunc->NDim() );
@@ -176,7 +176,7 @@ bool GSLSimAnMinimizer::Minimize() {
    // output vector
    std::vector<double> xmin(xvar.size() );
 
-   int iret = fSolver.Solve(*fObjFunc,& xvar.front(),& steps.front(),& xmin[0], (debugLevel > 1) );
+   int iret = fSolver.Solve(*fObjFunc, &xvar.front(), &steps.front(), &xmin[0], (debugLevel > 1) );
 
    fMinVal = (*fObjFunc)(&xmin.front() );
 
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS01/IsGISAXS01 b/Tests/FunctionalTests/TestCore/IsGISAXS01/IsGISAXS01
new file mode 100755
index 0000000000000000000000000000000000000000..f36f25a8a0f03d02a19d6babfd776fa437b2ab23
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS01/IsGISAXS01 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS02/IsGISAXS02 b/Tests/FunctionalTests/TestCore/IsGISAXS02/IsGISAXS02
new file mode 100755
index 0000000000000000000000000000000000000000..bcd5d5f60f3c6b31834485bdc5849191b91bfea7
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS02/IsGISAXS02 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS03/IsGISAXS03 b/Tests/FunctionalTests/TestCore/IsGISAXS03/IsGISAXS03
new file mode 100755
index 0000000000000000000000000000000000000000..80f6c1774eb663a85746dea05bced22b7c74c0d6
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS03/IsGISAXS03 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS04/IsGISAXS04 b/Tests/FunctionalTests/TestCore/IsGISAXS04/IsGISAXS04
new file mode 100755
index 0000000000000000000000000000000000000000..4e340bf15a71d064f0179470f25677fce8472525
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS04/IsGISAXS04 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06 b/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06
new file mode 100755
index 0000000000000000000000000000000000000000..93a39271f7d7edb58a2d2d7743c34e525344d865
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp b/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp
index 5ebb9499e3e42a0c014f9303514fb8afa72fc248..04e42bc2da785ebac8d919e8237654e53623b9c8 100644
--- a/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp
+++ b/Tests/FunctionalTests/TestCore/IsGISAXS06/IsGISAXS06.cpp
@@ -19,7 +19,8 @@
 FunctionalTests::IsGISAXS06::IsGISAXS06()
     : m_name("IsGISAXS06")
     , m_description("2D lattice with different disorder")
-    , m_path(Utils::FileSystem::GetHomePath()+"Tests/FunctionalTests/TestCore/IsGISAXS06/")
+    , m_path(Utils::FileSystem::GetHomePath() +
+             "Tests/FunctionalTests/TestCore/IsGISAXS06/")
 {
     m_results.resize(kNumberOfTests, 0);
 }
@@ -37,8 +38,10 @@ void FunctionalTests::IsGISAXS06::runlattice()
     // building sample
     MultiLayer multi_layer;
     complex_t n_particle(1.0-6e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::getHomogeneousMaterial("Air", 1.0, 0.0);
-    const IMaterial *p_substrate_material = MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
+    const IMaterial *p_air_material =
+         MaterialManager::getHomogeneousMaterial("Air", 1.0, 0.0);
+    const IMaterial *p_substrate_material =
+         MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
     Layer air_layer;
     air_layer.setMaterial(p_air_material);
     Layer substrate_layer;
@@ -49,20 +52,25 @@ void FunctionalTests::IsGISAXS06::runlattice()
     lattice_params.m_length_2 = 10.0*Units::nanometer; // L2
     lattice_params.m_angle = 90.0*Units::degree; // lattice angle
     lattice_params.m_xi = 0.0*Units::degree; // lattice orientation
-    lattice_params.m_domain_size_1 = 20000.0*Units::nanometer; // domain size 1
-    lattice_params.m_domain_size_2 =20000.0*Units::nanometer; // domain size 2
-    lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI; // correlation length 1
-    lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;  // correlation length 2
-
-    InterferenceFunction2DLattice *p_interference_function = new InterferenceFunction2DLattice(lattice_params);
-    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI, 100.0*Units::nanometer/2.0/M_PI);
+    // domain sizes
+    lattice_params.m_domain_size_1 = 20000.0*Units::nanometer;
+    lattice_params.m_domain_size_2 = 20000.0*Units::nanometer;
+    // correlation lengths
+    lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI;
+    lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;
+
+    InterferenceFunction2DLattice *p_interference_function =
+        new InterferenceFunction2DLattice(lattice_params);
+    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI,
+                               100.0*Units::nanometer/2.0/M_PI);
     p_interference_function->setProbabilityDistribution(pdf);
 
     // particles
     ParticleDecoration particle_decoration;
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
-    PositionParticleInfo particle_info( new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+    PositionParticleInfo particle_info(
+        new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
 
     particle_decoration.addInterferenceFunction(p_interference_function);
@@ -73,7 +81,9 @@ void FunctionalTests::IsGISAXS06::runlattice()
 
     // building simulation
     Simulation simulation;
-    simulation.setDetectorParameters(100, 0.0*Units::degree, 2.0*Units::degree, 100, 0.0*Units::degree, 2.0*Units::degree, true);
+    simulation.setDetectorParameters(
+        100, 0.0*Units::degree, 2.0*Units::degree,
+        100, 0.0*Units::degree, 2.0*Units::degree, true);
     simulation.setBeamParameters(1.0*Units::angstrom, -0.2*Units::degree, 0.0*Units::degree);
 
     SimulationParameters sim_params;
@@ -95,8 +105,10 @@ void FunctionalTests::IsGISAXS06::runcentered()
     // building sample
     MultiLayer multi_layer;
     complex_t n_particle(1.0-6e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::getHomogeneousMaterial("Air",  1.0, 0.0);
-    const IMaterial *p_substrate_material = MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
+    const IMaterial *p_air_material =
+         MaterialManager::getHomogeneousMaterial("Air",  1.0, 0.0);
+    const IMaterial *p_substrate_material =
+         MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
     Layer air_layer;
     air_layer.setMaterial(p_air_material);
     Layer substrate_layer;
@@ -112,15 +124,18 @@ void FunctionalTests::IsGISAXS06::runcentered()
     lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI; // correlation length 1
     lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;  // correlation length 2
 
-    InterferenceFunction2DLattice *p_interference_function = new InterferenceFunction2DLattice(lattice_params);
-    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI, 100.0*Units::nanometer/2.0/M_PI);
+    InterferenceFunction2DLattice *p_interference_function =
+        new InterferenceFunction2DLattice(lattice_params);
+    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI,
+                               100.0*Units::nanometer/2.0/M_PI);
     p_interference_function->setProbabilityDistribution(pdf);
 
     ParticleDecoration particle_decoration;
     // particle 1
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
-    PositionParticleInfo particle_info( new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+    PositionParticleInfo particle_info(
+        new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
     // particle 2
     kvector_t position_2(5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
@@ -135,7 +150,9 @@ void FunctionalTests::IsGISAXS06::runcentered()
 
     // building simulation
     Simulation simulation;
-    simulation.setDetectorParameters(100, 0.0*Units::degree, 2.0*Units::degree, 100, 0.0*Units::degree, 2.0*Units::degree, true);
+    simulation.setDetectorParameters(
+        100, 0.0*Units::degree, 2.0*Units::degree,
+        100, 0.0*Units::degree, 2.0*Units::degree, true);
     simulation.setBeamParameters(1.0*Units::angstrom, -0.2*Units::degree, 0.0*Units::degree);
 
     SimulationParameters sim_params;
@@ -156,8 +173,10 @@ void FunctionalTests::IsGISAXS06::runrotated()
 {
     MultiLayer multi_layer;
     complex_t n_particle(1.0-6e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::getHomogeneousMaterial("Air", 1.0, 0.0);
-    const IMaterial *p_substrate_material = MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
+    const IMaterial *p_air_material =
+        MaterialManager::getHomogeneousMaterial("Air", 1.0, 0.0);
+    const IMaterial *p_substrate_material =
+        MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
     Layer air_layer;
     air_layer.setMaterial(p_air_material);
     Layer substrate_layer;
@@ -168,13 +187,17 @@ void FunctionalTests::IsGISAXS06::runrotated()
     lattice_params.m_length_2 = 10.0*Units::nanometer; // L2
     lattice_params.m_angle = 90.0*Units::degree; // lattice angle
     lattice_params.m_xi = 30.0*Units::degree; // lattice orientation
-    lattice_params.m_domain_size_1 = 20000.0*Units::nanometer; // domain size 1
-    lattice_params.m_domain_size_2 =20000.0*Units::nanometer; // domain size 2
-    lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI; // correlation length 1
-    lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;  // correlation length 2
-
-    InterferenceFunction2DLattice *p_interference_function = new InterferenceFunction2DLattice(lattice_params);
-    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI, 100.0*Units::nanometer/2.0/M_PI);
+    // domain sizes:
+    lattice_params.m_domain_size_1 = 20000.0*Units::nanometer;
+    lattice_params.m_domain_size_2 = 20000.0*Units::nanometer;
+    // correlation lengths:
+    lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI;
+    lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;
+
+    InterferenceFunction2DLattice *p_interference_function =
+        new InterferenceFunction2DLattice(lattice_params);
+    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI,
+                               100.0*Units::nanometer/2.0/M_PI);
     pdf.setGamma(30.0*Units::degree);
     p_interference_function->setProbabilityDistribution(pdf);
 
@@ -182,7 +205,8 @@ void FunctionalTests::IsGISAXS06::runrotated()
     // particle
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
-    PositionParticleInfo particle_info( new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+    PositionParticleInfo particle_info(
+        new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
     particle_decoration.addInterferenceFunction(p_interference_function);
     LayerDecorator air_layer_decorator(air_layer, particle_decoration);
@@ -192,8 +216,11 @@ void FunctionalTests::IsGISAXS06::runrotated()
 
     // building simulation
     Simulation simulation;
-    simulation.setDetectorParameters(100, 0.0*Units::degree, 2.0*Units::degree, 100, 0.0*Units::degree, 2.0*Units::degree, true);
-    simulation.setBeamParameters(1.0*Units::angstrom, -0.2*Units::degree, 0.0*Units::degree);
+    simulation.setDetectorParameters(
+        100, 0.0*Units::degree, 2.0*Units::degree,
+        100, 0.0*Units::degree, 2.0*Units::degree, true);
+    simulation.setBeamParameters(1.0*Units::angstrom,
+                                -0.2*Units::degree, 0.0*Units::degree);
 
     SimulationParameters sim_params;
     sim_params.me_framework = SimulationParameters::DWBA;
@@ -213,8 +240,11 @@ void FunctionalTests::IsGISAXS06::runvariants()
 {
     // building simulation
     Simulation simulation;
-    simulation.setDetectorParameters(100, 0.0*Units::degree, 2.0*Units::degree, 100, 0.0*Units::degree, 2.0*Units::degree, true);
-    simulation.setBeamParameters(1.0*Units::angstrom, -0.2*Units::degree, 0.0*Units::degree);
+    simulation.setDetectorParameters(
+        100, 0.0*Units::degree, 2.0*Units::degree,
+        100, 0.0*Units::degree, 2.0*Units::degree, true);
+    simulation.setBeamParameters(1.0*Units::angstrom,
+                                -0.2*Units::degree, 0.0*Units::degree);
 
     SimulationParameters sim_params;
     sim_params.me_framework = SimulationParameters::DWBA;
@@ -251,8 +281,10 @@ ISample* FunctionalTests::IsGISAXS06::LatticeVariantBuilder::buildSample() const
 {
     MultiLayer *p_multi_layer = new MultiLayer();
     complex_t n_particle(1.0-6e-4, 2e-8);
-    const IMaterial *p_air_material = MaterialManager::getHomogeneousMaterial("Air", 1.0,0.0);
-    const IMaterial *p_substrate_material = MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
+    const IMaterial *p_air_material =
+         MaterialManager::getHomogeneousMaterial("Air", 1.0,0.0);
+    const IMaterial *p_substrate_material =
+         MaterialManager::getHomogeneousMaterial("Substrate", 1.0-6e-6, 2e-8);
     Layer air_layer;
     air_layer.setMaterial(p_air_material);
     Layer substrate_layer;
@@ -262,20 +294,23 @@ ISample* FunctionalTests::IsGISAXS06::LatticeVariantBuilder::buildSample() const
     lattice_params.m_length_2 = 10.0*Units::nanometer; // L2
     lattice_params.m_angle = 90.0*Units::degree; // lattice angle
     lattice_params.m_xi = m_xi; // lattice orientation
-    lattice_params.m_domain_size_1 = 20000.0*Units::nanometer; // domain size 1
-    lattice_params.m_domain_size_2 =20000.0*Units::nanometer; // domain size 2
-    lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI; // correlation length 1
-    lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;  // correlation length 2
-
-    InterferenceFunction2DLattice *p_interference_function = new InterferenceFunction2DLattice(lattice_params);
-    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI, 100.0*Units::nanometer/2.0/M_PI);
+    lattice_params.m_domain_size_1 = 20000.0*Units::nanometer;
+    lattice_params.m_domain_size_2 = 20000.0*Units::nanometer;
+    lattice_params.m_corr_length_1 = 300.0*Units::nanometer/2.0/M_PI;
+    lattice_params.m_corr_length_2 = 100.0*Units::nanometer/2.0/M_PI;
+
+    InterferenceFunction2DLattice *p_interference_function =
+        new InterferenceFunction2DLattice(lattice_params);
+    FTDistribution2DCauchy pdf(300.0*Units::nanometer/2.0/M_PI,
+                               100.0*Units::nanometer/2.0/M_PI);
     p_interference_function->setProbabilityDistribution(pdf);
 
     ParticleDecoration particle_decoration;
     // particle
     FormFactorCylinder ff_cyl(5.0*Units::nanometer, 5.0*Units::nanometer);
     kvector_t position(0.0, 0.0, 0.0);
-    PositionParticleInfo particle_info( new Particle(n_particle, ff_cyl.clone()), 0, position, 1.0);
+    PositionParticleInfo particle_info(
+        new Particle(n_particle, ff_cyl.clone()), position, 1.0);
     particle_decoration.addParticleInfo(particle_info);
 
     particle_decoration.addInterferenceFunction(p_interference_function);
@@ -300,7 +335,8 @@ int FunctionalTests::IsGISAXS06::analyseResults()
 
     // retrieving reference data and generated examples
     for(size_t i_test=0; i_test<kNumberOfTests; ++i_test) {
-        OutputData<double> *reference = OutputDataIOFactory::getOutputData(m_path + reference_files[i_test]);
+        OutputData<double> *reference =
+            OutputDataIOFactory::getOutputData(m_path + reference_files[i_test]);
         OutputData<double> *result = m_results[i_test];
 
         // calculating average relative difference
@@ -308,7 +344,8 @@ int FunctionalTests::IsGISAXS06::analyseResults()
         *result /= *reference;
 
         double diff(0);
-        for(OutputData<double>::const_iterator it=result->begin(); it!=result->end(); ++it) {
+        for(OutputData<double>::const_iterator it =
+                result->begin(); it!=result->end(); ++it) {
             diff+= std::fabs(*it);
         }
         diff /= result->getAllocatedSize();
@@ -316,7 +353,8 @@ int FunctionalTests::IsGISAXS06::analyseResults()
         delete reference;
     }
 
-    std::cout << m_name << " " << m_description << " " << (status_ok ? "[OK]" : "[FAILED]") << std::endl;
+    std::cout << m_name << " " << m_description << " " <<
+        (status_ok ? "[OK]" : "[FAILED]") << std::endl;
     return (int)status_ok;
 }
 
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07 b/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07
new file mode 100755
index 0000000000000000000000000000000000000000..84020b9ef950206d14177371a6d607522ffa2d2c
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07.cpp b/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07.cpp
index 108019158fb9b3d949c582e94a91504e2c645e8d..42871bb45808f380edad25d1673acb5d05b60a8c 100644
--- a/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07.cpp
+++ b/Tests/FunctionalTests/TestCore/IsGISAXS07/IsGISAXS07.cpp
@@ -34,61 +34,61 @@ void FunctionalTests::IsGISAXS07::run()
     // add particle number 1:
     FormFactorBox ff1(1.0*Units::nanometer, 1.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos1(0.0*Units::nanometer, 0.0*Units::nanometer, 0.0);
-    PositionParticleInfo particle_info1(new Particle(n_particle, ff1), 0, pos1, 0.5);
+    PositionParticleInfo particle_info1(new Particle(n_particle, ff1), pos1, 0.5);
     particle_decoration.addParticleInfo(particle_info1);
     // add particle number 2:
     FormFactorBox ff2(1.0*Units::nanometer, 2.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos2(5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot2 = new Geometry::RotateZ_3D(10*Units::degree);
-    PositionParticleInfo particle_info2(new Particle(n_particle, ff2), p_rot2, pos2, 0.5);
+    Geometry::PTransform3D m2( new Geometry::RotateZ_3D(10*Units::degree));
+    PositionParticleInfo particle_info2(new Particle(n_particle, ff2), m2, pos2, 0.5);
     particle_decoration.addParticleInfo(particle_info2);
     // add particle number 3:
     FormFactorBox ff3(1.0*Units::nanometer, 3.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos3(-5.0*Units::nanometer, -5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot3 = new Geometry::RotateZ_3D(20*Units::degree);
-    PositionParticleInfo particle_info3(new Particle(n_particle, ff3), p_rot3, pos3, 0.5);
+    Geometry::PTransform3D m3( new Geometry::RotateZ_3D(20*Units::degree));
+    PositionParticleInfo particle_info3(new Particle(n_particle, ff3), m3, pos3, 0.5);
     particle_decoration.addParticleInfo(particle_info3);
     // add particle number 4:
     FormFactorBox ff4(1.0*Units::nanometer, 4.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos4(5.0*Units::nanometer, -5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot4 = new Geometry::RotateZ_3D(30*Units::degree);
-    PositionParticleInfo particle_info4(new Particle(n_particle, ff4), p_rot4, pos4, 0.5);
+    Geometry::PTransform3D m4( new Geometry::RotateZ_3D(30*Units::degree));
+    PositionParticleInfo particle_info4(new Particle(n_particle, ff4), m4, pos4, 0.5);
     particle_decoration.addParticleInfo(particle_info4);
     // add particle number 5:
     FormFactorBox ff5(1.0*Units::nanometer, 5.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos5(-5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot5 = new Geometry::RotateZ_3D(40*Units::degree);
-    PositionParticleInfo particle_info5(new Particle(n_particle, ff5), p_rot5, pos5, 0.5);
+    Geometry::PTransform3D m5( new Geometry::RotateZ_3D(40*Units::degree));
+    PositionParticleInfo particle_info5(new Particle(n_particle, ff5), m5, pos5, 0.5);
     particle_decoration.addParticleInfo(particle_info5);
     // add particle number 6:
     FormFactorBox ff6(1.0*Units::nanometer, 1.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos6(0.0*Units::nanometer, 0.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot6 = new Geometry::RotateZ_3D(50*Units::degree);
-    PositionParticleInfo particle_info6(new Particle(n_particle, ff6), p_rot6, pos6, 0.5);
+    Geometry::PTransform3D m6( new Geometry::RotateZ_3D(50*Units::degree));
+    PositionParticleInfo particle_info6(new Particle(n_particle, ff6), m6, pos6, 0.5);
     particle_decoration.addParticleInfo(particle_info6);
     // add particle number 7:
     FormFactorBox ff7(1.0*Units::nanometer, 2.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos7(5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot7 = new Geometry::RotateZ_3D(60*Units::degree);
-    PositionParticleInfo particle_info7(new Particle(n_particle, ff7), p_rot7, pos7, 0.5);
+    Geometry::PTransform3D m7( new Geometry::RotateZ_3D(60*Units::degree));
+    PositionParticleInfo particle_info7(new Particle(n_particle, ff7), m7, pos7, 0.5);
     particle_decoration.addParticleInfo(particle_info7);
     // add particle number 8:
     FormFactorBox ff8(1.0*Units::nanometer, 3.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos8(-5.0*Units::nanometer, -5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot8 = new Geometry::RotateZ_3D(70*Units::degree);
-    PositionParticleInfo particle_info8(new Particle(n_particle, ff8), p_rot8, pos8, 0.5);
+    Geometry::PTransform3D m8( new Geometry::RotateZ_3D(70*Units::degree));
+    PositionParticleInfo particle_info8(new Particle(n_particle, ff8), m8, pos8, 0.5);
     particle_decoration.addParticleInfo(particle_info8);
     // add particle number 9:
     FormFactorBox ff9(1.0*Units::nanometer, 4.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos9(5.0*Units::nanometer, -5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot9 = new Geometry::RotateZ_3D(80*Units::degree);
-    PositionParticleInfo particle_info9(new Particle(n_particle, ff9), p_rot9, pos9, 0.5);
+    Geometry::PTransform3D m9( new Geometry::RotateZ_3D(80*Units::degree));
+    PositionParticleInfo particle_info9(new Particle(n_particle, ff9), m9, pos9, 0.5);
     particle_decoration.addParticleInfo(particle_info9);
     // add particle number 10:
     FormFactorBox ff10(1.0*Units::nanometer, 5.0*Units::nanometer,1.0*Units::nanometer);
     kvector_t pos10(-5.0*Units::nanometer, 5.0*Units::nanometer, 0.0);
-    Geometry::RotateZ_3D *p_rot10 = new Geometry::RotateZ_3D(90*Units::degree);
-    PositionParticleInfo particle_info10(new Particle(n_particle, ff10), p_rot10, pos10, 0.5);
+    Geometry::PTransform3D m10( new Geometry::RotateZ_3D(90*Units::degree));
+    PositionParticleInfo particle_info10(new Particle(n_particle, ff10), m10, pos10, 0.5);
     particle_decoration.addParticleInfo(particle_info10);
 
     LayerDecorator air_layer_decorator(air_layer, particle_decoration);
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS08/IsGISAXS08 b/Tests/FunctionalTests/TestCore/IsGISAXS08/IsGISAXS08
new file mode 100755
index 0000000000000000000000000000000000000000..328bf4783763150669681e6276986057195093af
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS08/IsGISAXS08 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09 b/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09
new file mode 100755
index 0000000000000000000000000000000000000000..1d49a2182662f3a40115b433baeb04f15563b4a3
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09.cpp b/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09.cpp
index 1cd6e3b11b735d9d1cc9c86db51605c35343ae22..c7a5109bdc803be9e3f40762f8692a9389b3144c 100644
--- a/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09.cpp
+++ b/Tests/FunctionalTests/TestCore/IsGISAXS09/IsGISAXS09.cpp
@@ -91,15 +91,14 @@ void FunctionalTests::IsGISAXS09::runpyramidZ45()
     substrate_layer.setMaterial(p_substrate_material);
 
     complex_t n_particle(1.0-6e-4, 2e-8);
-    const double angle_around_z = 45.*Units::degree;
     Particle *pyramid = new Particle(
         n_particle,
         new FormFactorPyramid(5*Units::nanometer,
                               5*Units::nanometer,
                               Units::deg2rad(54.73)) );
 
-    Geometry::ITransform3D *transform =
-        new Geometry::RotateZ_3D(angle_around_z);
+    Geometry::PTransform3D transform(
+        new Geometry::RotateZ_3D(45.*Units::degree) );
 
     ParticleDecoration particle_decoration;
 
@@ -167,8 +166,3 @@ int main()
     return test.analyseResults();
 }
 #endif
-
-
-
-
-
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS10/IsGISAXS10 b/Tests/FunctionalTests/TestCore/IsGISAXS10/IsGISAXS10
new file mode 100755
index 0000000000000000000000000000000000000000..b615da1c7162a6d5022f5f76231340f46cfd70db
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS10/IsGISAXS10 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS11/IsGISAXS11 b/Tests/FunctionalTests/TestCore/IsGISAXS11/IsGISAXS11
new file mode 100755
index 0000000000000000000000000000000000000000..35564b2e3659c728fcbe83198c4f259d102fa30d
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS11/IsGISAXS11 differ
diff --git a/Tests/FunctionalTests/TestCore/IsGISAXS15/IsGISAXS15 b/Tests/FunctionalTests/TestCore/IsGISAXS15/IsGISAXS15
new file mode 100755
index 0000000000000000000000000000000000000000..ab527618223882d95d549d2a23d5a81a6b7f8e20
Binary files /dev/null and b/Tests/FunctionalTests/TestCore/IsGISAXS15/IsGISAXS15 differ
diff --git a/Tests/FunctionalTests/TestFit/TestFit01/TestFit01 b/Tests/FunctionalTests/TestFit/TestFit01/TestFit01
new file mode 100755
index 0000000000000000000000000000000000000000..cf098b14cd58a01fc4340d9e0db2cdf6f99429db
Binary files /dev/null and b/Tests/FunctionalTests/TestFit/TestFit01/TestFit01 differ
diff --git a/Tests/UnitTests/TestCore/KVectorTest.h b/Tests/UnitTests/TestCore/KVectorTest.h
index ed47bdb9db6abb5fd29ee784a7413e2862e99894..3c50163174b96e266581b1e50a62eab9b5cbb693 100644
--- a/Tests/UnitTests/TestCore/KVectorTest.h
+++ b/Tests/UnitTests/TestCore/KVectorTest.h
@@ -119,20 +119,20 @@ TEST_F(KVectorTest, BasicTransformation)
 */
 
     a = kvector_t(std::sqrt(3.)/2., 2., 0.5);
-    Geometry::ITransform3D m2 = Geometry::RotateY_3D(M_PI/6.);
-    v = m2.transformed(a);
+    Geometry::PTransform3D m2(new Geometry::RotateY_3D(M_PI/6.));
+    v = m2->transformed(a);
     ASSERT_NEAR(      v.x(), 1.0, epsilon );
     EXPECT_DOUBLE_EQ( v.y(), 2.0 );
     ASSERT_NEAR(      v.z(), 0.0, epsilon );
 
     a = kvector_t(0.5, std::sqrt(3.)/2., 2.);
-    Geometry::ITransform3D m3 = Geometry::RotateZ_3D(M_PI/6.);
-    v = m3.transformed(a);
+    Geometry::PTransform3D m3(new Geometry::RotateZ_3D(M_PI/6.));
+    v = m3->transformed(a);
     ASSERT_NEAR(      v.x(), 0.0, epsilon );
     ASSERT_NEAR(      v.y(), 1.0, epsilon );
     EXPECT_DOUBLE_EQ( v.z(), 2.0 );
-    Geometry::ITransform3D m4_inverse = m3.inverse();
-    v = m4_inverse.transformed(v);
+    Geometry::PTransform3D m4 = m3->inverse();
+    v = m4->transformed(v);
     ASSERT_NEAR( v.x(), a.x(), epsilon );
     ASSERT_NEAR( v.y(), a.y(), epsilon );
     ASSERT_NEAR( v.z(), a.z(), epsilon );
diff --git a/Tests/UnitTests/TestCore/RealParameterWrapperTest.h b/Tests/UnitTests/TestCore/RealParameterWrapperTest.h
index a553a2d1fe2c20101780987425fe2e490f524dcd..98d36ef5c0d4be8ef87f2099a9aaabdda3e74018 100644
--- a/Tests/UnitTests/TestCore/RealParameterWrapperTest.h
+++ b/Tests/UnitTests/TestCore/RealParameterWrapperTest.h
@@ -72,8 +72,8 @@ TEST_F(RealParameterWrapperTest, ParameterAccess)
 //    m_real_parameter = 1.0;
 //    RealParameterWrapper par(&m_real_parameter);
 //    ObjectToNotify obj1, obj2;
-//    RealParameterWrapper::signal_t::slot_type fun1 = boost::bind(&ObjectToNotify::set_status_true,& obj1);
-//    RealParameterWrapper::signal_t::slot_type fun2 = boost::bind(&ObjectToNotify::set_status_true,& obj2);
+//    RealParameterWrapper::signal_t::slot_type fun1 = boost::bind(&ObjectToNotify::set_status_true, &obj1);
+//    RealParameterWrapper::signal_t::slot_type fun2 = boost::bind(&ObjectToNotify::set_status_true, &obj2);
 //    par.connect(fun1);
 //    par.connect(fun2);
 //    obj1.m_status = false;
diff --git a/ThirdParty/gtest/gtest-1.6.0/src/gtest-internal-inl.h b/ThirdParty/gtest/gtest-1.6.0/src/gtest-internal-inl.h
index 6f03998ac8d700470eac3a1940fef84e0a463286..28e8ecd85b738cfbe9760eb3e72bc9e94c6fd76f 100644
--- a/ThirdParty/gtest/gtest-1.6.0/src/gtest-internal-inl.h
+++ b/ThirdParty/gtest/gtest-1.6.0/src/gtest-internal-inl.h
@@ -985,12 +985,12 @@ bool ParseNaturalNumber(const ::std::string& str, Integer* number) {
 
   // MSVC and C++ Builder define __int64 instead of the standard long long.
   typedef unsigned __int64 BiggestConvertible;
-  const BiggestConvertible parsed = _strtoui64(str.c_str(),& end, 10);
+  const BiggestConvertible parsed = _strtoui64(str.c_str(), &end, 10);
 
 # else
 
   typedef unsigned long long BiggestConvertible;  // NOLINT
-  const BiggestConvertible parsed = strtoull(str.c_str(),& end, 10);
+  const BiggestConvertible parsed = strtoull(str.c_str(), &end, 10);
 
 # endif  // GTEST_OS_WINDOWS && !defined(__GNUC__)
 
diff --git a/remake b/remake
new file mode 100644
index 0000000000000000000000000000000000000000..727294b56b77fd33b6f0bb5ed0a436f8652d015c
--- /dev/null
+++ b/remake
@@ -0,0 +1,10 @@
+# in directory BornAgain, run ./remakeall to rebuild everything
+make clean
+rm `find . -name "*.o"`
+rm Makefile
+rm App/Makefile
+rm Core/Makefile
+rm Fit/Makefile
+rm Tests/UnitTests/TestCore/Makefile
+qmake
+make
\ No newline at end of file