diff --git a/Core/Computation/ComputationStatus.h b/Core/Computation/ComputationStatus.h
index 6861c2b9a75bf9bbb28f08acfdfabf3fc074d904..b92a5eb533cc20317c16e5b9655956fd292d9d00 100644
--- a/Core/Computation/ComputationStatus.h
+++ b/Core/Computation/ComputationStatus.h
@@ -30,8 +30,7 @@ public:
 
     void setRunning() { m_status = RUNNING; }
     void setCompleted() { m_status = COMPLETED; }
-    void setFailed() { m_status = FAILED; }
-    void setErrorMessage(const std::string& message) { m_error_message = message; }
+    void setFailed(const std::string& message) { m_error_message = message; m_status = FAILED; }
 
 private:
     enum ESimulationStatus { IDLE, RUNNING, COMPLETED, FAILED };
diff --git a/Core/Computation/DWBAComputation.cpp b/Core/Computation/DWBAComputation.cpp
index 36d257e3038b61921dd64ab6f40c86525a2322e9..a7e4c1e40ce26e1f4d57bc4b323495d2bd5b4b73 100644
--- a/Core/Computation/DWBAComputation.cpp
+++ b/Core/Computation/DWBAComputation.cpp
@@ -34,9 +34,9 @@ DWBAComputation::DWBAComputation(const MultiLayer& multilayer, const SimulationO
                                  std::vector<SimulationElement>::iterator end_it)
     : IComputation(multilayer, options, progress), m_begin_it(begin_it), m_end_it(end_it)
 {
-    auto p_fresnel_map = m_processed_sample->fresnelMap();
+    const IFresnelMap* p_fresnel_map = m_processed_sample->fresnelMap();
     bool polarized = m_processed_sample->containsMagneticMaterial();
-    for (const auto& layout : m_processed_sample->layouts()) {
+    for (const ProcessedLayout& layout : m_processed_sample->layouts()) {
         m_single_computation.addLayoutComputation(
             new ParticleLayoutComputation(&layout, m_sim_options, polarized));
     }
diff --git a/Core/Computation/IComputation.cpp b/Core/Computation/IComputation.cpp
index f04364d92b56eb7a4986668c513e24be730d7e59..f8f954cb0eb8d6c5ac57376160e5c7061413b836 100644
--- a/Core/Computation/IComputation.cpp
+++ b/Core/Computation/IComputation.cpp
@@ -34,7 +34,6 @@ void IComputation::run()
         runProtected();
         m_status.setCompleted();
     } catch (const std::exception& ex) {
-        m_status.setErrorMessage(std::string(ex.what()));
-        m_status.setFailed();
+        m_status.setFailed(ex.what());
     }
 }
diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp
index 472f2420e527c657fd9f4396e9222a3f6480c2cf..02f10d87e5014c09bf32d81edf012d6fd3f60a6d 100644
--- a/Core/Simulation/Simulation.cpp
+++ b/Core/Simulation/Simulation.cpp
@@ -68,7 +68,7 @@ size_t getNumberOfElements(size_t n_handlers, size_t current_handler, size_t n_e
     return std::min(handler_size, n_elements - start_index);
 }
 
-void runComputations(std::vector<std::unique_ptr<IComputation>> computations)
+void runComputations(std::vector<std::unique_ptr<IComputation>>& computations)
 {
     ASSERT(!computations.empty());
 
@@ -303,7 +303,7 @@ void Simulation::runSingleSimulation(size_t batch_start, size_t batch_size, doub
             break;
         computations.push_back(generateSingleThreadedComputation(thread_start, thread_size));
     }
-    runComputations(std::move(computations));
+    runComputations(computations);
 
     normalize(batch_start, batch_size);
     addBackgroundIntensity(batch_start, batch_size);
diff --git a/auto/Wrap/doxygenCore.i b/auto/Wrap/doxygenCore.i
index 45fe2b67a10ddc37dd93b9a303bb4c7aaf972aec..6e68eefc69257276295e76db271f1c977866fd80 100644
--- a/auto/Wrap/doxygenCore.i
+++ b/auto/Wrap/doxygenCore.i
@@ -206,10 +206,7 @@ C++ includes: ComputationStatus.h
 %feature("docstring")  ComputationStatus::setCompleted "void ComputationStatus::setCompleted()
 ";
 
-%feature("docstring")  ComputationStatus::setFailed "void ComputationStatus::setFailed()
-";
-
-%feature("docstring")  ComputationStatus::setErrorMessage "void ComputationStatus::setErrorMessage(const std::string &message)
+%feature("docstring")  ComputationStatus::setFailed "void ComputationStatus::setFailed(const std::string &message)
 ";