Index: src/Actions/MoleculeAction/BondFileAction.cpp
===================================================================
--- src/Actions/MoleculeAction/BondFileAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/BondFileAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -43,10 +43,10 @@
   if(World::getInstance().countSelectedMolecules() == 1) {
     mol = World::getInstance().beginMoleculeSelection()->second;
-    LOG(0, "STATUS: Parsing bonds from " << params.bondfile
-        << ", skipping " << params.skiplines << "lines"
-        << ", adding " << params.id_offset << " to each id.");
-    ifstream input(params.bondfile.string().c_str());
+    LOG(0, "STATUS: Parsing bonds from " << params.bondfile.get()
+        << ", skipping " << params.skiplines.get() << "lines"
+        << ", adding " << params.id_offset.get() << " to each id.");
+    ifstream input(params.bondfile.get().string().c_str());
     World::AtomComposite Set = mol->getAtomSet();
-    World::getInstance().getBondGraph()->CreateAdjacencyListFromDbondFile(Set, &input, params.skiplines, params.id_offset);
+    World::getInstance().getBondGraph()->CreateAdjacencyListFromDbondFile(Set, &input, params.skiplines.get(), params.id_offset.get());
     input.close();
     mol->getBondCount();
Index: src/Actions/MoleculeAction/ChangeNameAction.cpp
===================================================================
--- src/Actions/MoleculeAction/ChangeNameAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/ChangeNameAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -40,5 +40,5 @@
     mol = World::getInstance().beginMoleculeSelection()->second;
     string oldName = mol->getName();
-    mol->setName(params.name);
+    mol->setName(params.name.get());
     return Action::state_ptr(new MoleculeChangeNameState(mol,params));
   } else
@@ -50,6 +50,6 @@
 
   string newName = state->mol->getName();
-  state->mol->setName(state->params.name);
-  state->params.name = newName;
+  state->mol->setName(state->params.name.get());
+  state->params.name.set(newName);
 
   return Action::state_ptr(_state);
Index: src/Actions/MoleculeAction/CopyAction.cpp
===================================================================
--- src/Actions/MoleculeAction/CopyAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/CopyAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -43,8 +43,8 @@
   molecule *copy = NULL;
 
-  copy = params.mol->CopyMolecule();
-  Vector *Center = params.mol->DetermineCenterOfAll();
+  copy = params.mol.get()->CopyMolecule();
+  Vector *Center = params.mol.get()->DetermineCenterOfAll();
   *Center *= -1.;
-  *Center += params.position;
+  *Center += params.position.get();
   copy->Translate(Center);
   delete(Center);
@@ -65,8 +65,8 @@
   MoleculeCopyState *state = assert_cast<MoleculeCopyState*>(_state.get());
 
-  molecule *copy = state->params.mol->CopyMolecule();
-  Vector *Center = state->params.mol->DetermineCenterOfAll();
+  molecule *copy = state->params.mol.get()->CopyMolecule();
+  Vector *Center = state->params.mol.get()->DetermineCenterOfAll();
   *Center *= -1.;
-  *Center += state->params.position;
+  *Center += state->params.position.get();
   copy->Translate(Center);
   delete(Center);
Index: src/Actions/MoleculeAction/FillVoidWithMoleculeAction.cpp
===================================================================
--- src/Actions/MoleculeAction/FillVoidWithMoleculeAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/FillVoidWithMoleculeAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -46,22 +46,22 @@
 /** =========== define the function ====================== */
 Action::state_ptr MoleculeFillVoidWithMoleculeAction::performCall() {
-  if (!boost::filesystem::exists(params.fillername)) {
-    ELOG(1, "File with filler molecule " << params.fillername << " does not exist!");
+  if (!boost::filesystem::exists(params.fillername.get())) {
+    ELOG(1, "File with filler molecule " << params.fillername.get() << " does not exist!");
     return Action::failure;
   }
 
   LOG(1, "INFO: Filling Box with water molecules, "
-      << " minimum distance to molecules" << params.boundary
-      << ", random atom displacement " << params.RandAtomDisplacement
-      << ", random molecule displacement " << params.RandMoleculeDisplacement
-      << ", distances between fillers (" << params.distances[0] << "," << params.distances[1] << "," << params.distances[2]
-      << "), MinDistance " << params.MinDistance
-      << ", DoRotate " << params.DoRotate << ".");
+      << " minimum distance to molecules" << params.boundary.get()
+      << ", random atom displacement " << params.RandAtomDisplacement.get()
+      << ", random molecule displacement " << params.RandMoleculeDisplacement.get()
+      << ", distances between fillers (" << params.distances.get()[0] << "," << params.distances.get()[1] << "," << params.distances.get()[2]
+      << "), MinDistance " << params.MinDistance.get()
+      << ", DoRotate " << params.DoRotate.get() << ".");
   // construct water molecule
   std::vector<molecule *> presentmolecules = World::getInstance().getAllMolecules();
 //  LOG(0, presentmolecules.size() << " molecules initially are present.");
-  std::string FilenameSuffix = params.fillername.string().substr(params.fillername.string().find_last_of('.')+1, params.fillername.string().length());
+  std::string FilenameSuffix = params.fillername.get().string().substr(params.fillername.get().string().find_last_of('.')+1, params.fillername.get().string().length());
   ifstream input;
-  input.open(params.fillername.string().c_str());
+  input.open(params.fillername.get().string().c_str());
   ParserTypes type = FormatParserStorage::getInstance().getTypeFromSuffix(FilenameSuffix);
   FormatParserInterface &parser = FormatParserStorage::getInstance().get(type);
@@ -72,5 +72,5 @@
   ASSERT(filler != NULL,
       "MoleculeFillVoidWithMoleculeAction::performCall() - no last molecule found, nothing parsed?.");
-  filler->SetNameFromFilename(params.fillername.string().c_str());
+  filler->SetNameFromFilename(params.fillername.get().string().c_str());
   World::AtomComposite Set = filler->getAtomSet();
   World::getInstance().getBondGraph()->CreateAdjacency(Set);
@@ -79,14 +79,14 @@
   double distance[NDIM];
   for (int i=0;i<NDIM;i++)
-    distance[i] = params.distances[i];
+    distance[i] = params.distances.get()[i];
   FillVoidWithMolecule(
       filler,
       *(World::getInstance().getConfig()),
       distance,
-      params.boundary,
-      params.RandAtomDisplacement,
-      params.RandMoleculeDisplacement,
-      params.MinDistance,
-      params.DoRotate);
+      params.boundary.get(),
+      params.RandAtomDisplacement.get(),
+      params.RandMoleculeDisplacement.get(),
+      params.MinDistance.get(),
+      params.DoRotate.get());
 
   // generate list of newly created molecules
Index: src/Actions/MoleculeAction/FillWithMoleculeAction.cpp
===================================================================
--- src/Actions/MoleculeAction/FillWithMoleculeAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/FillWithMoleculeAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -46,18 +46,18 @@
 
   LOG(1, "INFO: Filling Box with water molecules, "
-      << " minimum distance to molecules" << params.boundary
-      << ", random atom displacement " << params.RandAtomDisplacement
-      << ", random molecule displacement " << params.RandMoleculeDisplacement
-      << ", distances between fillers (" << params.distances[0] << "," << params.distances[1] << "," << params.distances[2]
-      << "), MinDistance " << params.MaxDistance
-      << ", DoRotate " << params.DoRotate << ".");
+      << " minimum distance to molecules" << params.boundary.get()
+      << ", random atom displacement " << params.RandAtomDisplacement.get()
+      << ", random molecule displacement " << params.RandMoleculeDisplacement.get()
+      << ", distances between fillers (" << params.distances.get()[0] << "," << params.distances.get()[1] << "," << params.distances.get()[2]
+      << "), MinDistance " << params.MaxDistance.get()
+      << ", DoRotate " << params.DoRotate.get() << ".");
   // construct water molecule
   std::vector<molecule *> presentmolecules = World::getInstance().getAllMolecules();
 //  LOG(0, presentmolecules.size() << " molecules initially are present.");
-  std::string FilenameSuffix = params.fillername.string().substr(params.fillername.string().find_last_of('.')+1, params.fillername.string().length());
+  std::string FilenameSuffix = params.fillername.get().string().substr(params.fillername.get().string().find_last_of('.')+1, params.fillername.get().string().length());
   ifstream input;
-  LOG(0, "STATUS: Loading filler molecule " << params.fillername.string().c_str()
+  LOG(0, "STATUS: Loading filler molecule " << params.fillername.get().string().c_str()
       << " of suffix " << FilenameSuffix << ".");
-  input.open(params.fillername.string().c_str());
+  input.open(params.fillername.get().string().c_str());
   FormatParserStorage::getInstance().load(input, FilenameSuffix);
   input.close();
@@ -67,5 +67,5 @@
   ASSERT(filler != NULL,
       "MoleculeFillWithMoleculeAction::performCall() - no last molecule found, nothing parsed?.");
-  filler->SetNameFromFilename(params.fillername.string().c_str());
+  filler->SetNameFromFilename(params.fillername.get().string().c_str());
   World::AtomComposite Set = filler->getAtomSet();
   LOG(1, "INFO: The filler molecules has " << Set.size() << " atoms.");
@@ -78,14 +78,14 @@
   double distance[NDIM];
   for (int i=0;i<NDIM;i++)
-    distance[i] = params.distances[i];
+    distance[i] = params.distances.get()[i];
   FillBoxWithMolecule(
       World::getInstance().getMolecules(),
       filler, *(World::getInstance().getConfig()),
-      params.MaxDistance,
+      params.MaxDistance.get(),
       distance,
-      params.boundary,
-      params.RandAtomDisplacement,
-      params.RandMoleculeDisplacement,
-      params.DoRotate);
+      params.boundary.get(),
+      params.RandAtomDisplacement.get(),
+      params.RandMoleculeDisplacement.get(),
+      params.DoRotate.get());
   for (molecule::iterator iter = filler->begin(); !filler->empty(); iter = filler->begin()) {
     atom *Walker = *iter;
Index: src/Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.cpp
===================================================================
--- src/Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/LinearInterpolationofTrajectoriesAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -43,9 +43,9 @@
 /** =========== define the function ====================== */
 Action::state_ptr MoleculeLinearInterpolationofTrajectoriesAction::performCall() {
-  LOG(0, "STATUS: Linear interpolation between configuration " << params.start << " and " << params.end << "." << endl);
-  ASSERT(params.end > params.start, "MoleculeLinearInterpolationofTrajectoriesAction() - start step greater than end step.");
+  LOG(0, "STATUS: Linear interpolation between configuration " << params.start.get() << " and " << params.end.get() << "." << endl);
+  ASSERT(params.end.get() > params.start.get(), "MoleculeLinearInterpolationofTrajectoriesAction() - start step greater than end step.");
   AtomSetMixin<std::vector<atom*> > set(World::getInstance().getSelectedAtoms());
-  LinearInterpolationBetweenSteps<std::vector<atom*> > LinearInterpolate(set,(unsigned int)(params.interpolation_steps));
-  LinearInterpolate(params.start, params.end, params.IdMapping);
+  LinearInterpolationBetweenSteps<std::vector<atom*> > LinearInterpolate(set,(unsigned int)(params.interpolation_steps.get()));
+  LinearInterpolate(params.start.get(), params.end.get(), params.IdMapping.get());
   LOG(0, "STATUS: done." << endl);
 
Index: src/Actions/MoleculeAction/LoadAction.cpp
===================================================================
--- src/Actions/MoleculeAction/LoadAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/LoadAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -44,6 +44,6 @@
 Action::state_ptr MoleculeLoadAction::performCall() {
   // parsing file if present
-  if (!boost::filesystem::exists(params.filename)) {
-    LOG(1, "Specified input file " << params.filename << " not found.");
+  if (!boost::filesystem::exists(params.filename.get())) {
+    LOG(1, "Specified input file " << params.filename.get() << " not found.");
     return Action::failure;
   } else {
@@ -53,12 +53,12 @@
     std::string FilenameSuffix;
     std::string FilenamePrefix;
-    if (params.filename.has_filename()) {
+    if (params.filename.get().has_filename()) {
       // get suffix
 #if BOOST_VERSION >= 104600
-      FilenameSuffix = params.filename.extension().string().substr(1); // remove the prefixed "."
-      FilenamePrefix = params.filename.stem().string();
+      FilenameSuffix = params.filename.get().extension().string().substr(1); // remove the prefixed "."
+      FilenamePrefix = params.filename.get().stem().string();
 #else
-      FilenameSuffix = params.filename.extension().substr(1); // remove the prefixed "."
-      FilenamePrefix = params.filename.stem();
+      FilenameSuffix = params.filename.get().extension().substr(1); // remove the prefixed "."
+      FilenamePrefix = params.filename.get().stem();
 #endif
     } else {
@@ -79,5 +79,5 @@
     // parse the file
     boost::filesystem::ifstream input;
-    input.open(params.filename);
+    input.open(params.filename.get());
     FormatParserStorage::getInstance().load(input, FilenameSuffix);
     input.close();
@@ -125,5 +125,5 @@
   // parse the file
   boost::filesystem::ifstream input;
-  input.open(state->params.filename);
+  input.open(state->params.filename.get());
   FormatParserStorage::getInstance().load(input, state->FilenameSuffix);
   input.close();
Index: src/Actions/MoleculeAction/RotateAroundSelfByAngleAction.cpp
===================================================================
--- src/Actions/MoleculeAction/RotateAroundSelfByAngleAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/RotateAroundSelfByAngleAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -48,19 +48,19 @@
   BOOST_FOREACH(molecule *mol, selectedMolecules) {
     // check whether Axis is valid
-    if (params.Axis.IsZero())
+    if (params.Axis.get().IsZero())
       return Action::failure;
 
     // convert from degrees to radian
-    params.angle *= M_PI/180.;
+    params.angle.set(params.angle.get() * M_PI/180.);
 
     // Creation Line that is the rotation axis
     Vector *CenterOfGravity = mol->DetermineCenterOfGravity();
     LOG(0,  "Center of gravity is " << *CenterOfGravity << ".");
-    Line RotationAxis(*CenterOfGravity, params.Axis);
+    Line RotationAxis(*CenterOfGravity, params.Axis.get());
     delete(CenterOfGravity);
-    LOG(0, "Rotate " << mol->getName() << " around self by " << params.angle << " radian around axis " << RotationAxis << ".");
+    LOG(0, "Rotate " << mol->getName() << " around self by " << params.angle.get() << " radian around axis " << RotationAxis << ".");
 
     for (molecule::iterator iter = mol->begin(); iter != mol->end(); ++iter) {
-      (*iter)->setPosition(RotationAxis.rotateVector((*iter)->getPosition(), params.angle));
+      (*iter)->setPosition(RotationAxis.rotateVector((*iter)->getPosition(), params.angle.get()));
     }
     LOG(0, "done.");
@@ -76,10 +76,10 @@
     Vector *CenterOfGravity = mol->DetermineCenterOfGravity();
     LOG(0,  "Center of gravity is " << *CenterOfGravity << ".");
-    Line RotationAxis(*CenterOfGravity, state->params.Axis);
+    Line RotationAxis(*CenterOfGravity, state->params.Axis.get());
     delete(CenterOfGravity);
-    LOG(0, "Rotate " << mol->getName() << " around self by " << -state->params.angle << " radian around axis " << RotationAxis << ".");
+    LOG(0, "Rotate " << mol->getName() << " around self by " << -state->params.angle.get() << " radian around axis " << RotationAxis << ".");
 
     for (molecule::iterator iter = mol->begin(); iter != mol->end(); ++iter) {
-      (*iter)->setPosition(RotationAxis.rotateVector((*iter)->getPosition(), -state->params.angle));
+      (*iter)->setPosition(RotationAxis.rotateVector((*iter)->getPosition(), -state->params.angle.get()));
     }
   }
@@ -94,10 +94,10 @@
     Vector *CenterOfGravity = mol->DetermineCenterOfGravity();
     LOG(0,  "Center of gravity is " << *CenterOfGravity << ".");
-    Line RotationAxis(*CenterOfGravity, state->params.Axis);
+    Line RotationAxis(*CenterOfGravity, state->params.Axis.get());
     delete(CenterOfGravity);
-    LOG(0, "Rotate " << mol->getName() << " around self by " << state->params.angle << " radian around axis " << RotationAxis << ".");
+    LOG(0, "Rotate " << mol->getName() << " around self by " << state->params.angle.get() << " radian around axis " << RotationAxis << ".");
 
     for (molecule::iterator iter = mol->begin(); iter != mol->end(); ++iter) {
-      (*iter)->setPosition(RotationAxis.rotateVector((*iter)->getPosition(), state->params.angle));
+      (*iter)->setPosition(RotationAxis.rotateVector((*iter)->getPosition(), state->params.angle.get()));
     }
   }
Index: src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.cpp
===================================================================
--- src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/RotateToPrincipalAxisSystemAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -49,5 +49,5 @@
     RealSpaceMatrix InertiaTensor = mol->getInertiaTensor();
 
-    mol->RotateToPrincipalAxisSystem(params.Axis);
+    mol->RotateToPrincipalAxisSystem(const_cast<Vector &>(params.Axis.get()));
 
     // summing anew for debugging (resulting matrix has to be diagonal!)
Index: src/Actions/MoleculeAction/SaveAdjacencyAction.cpp
===================================================================
--- src/Actions/MoleculeAction/SaveAdjacencyAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/SaveAdjacencyAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -42,10 +42,10 @@
   for (World::MoleculeSelectionIterator iter = World::getInstance().beginMoleculeSelection(); iter != World::getInstance().endMoleculeSelection(); ++iter) {
     mol = iter->second;
-    LOG(0, "Storing adjacency to path " << params.adjacencyfile << ".");
+    LOG(0, "Storing adjacency to path " << params.adjacencyfile.get() << ".");
     // TODO: sollte stream nicht filename benutzen, besser fuer unit test
 #if BOOST_VERSION >= 104600
-    mol->StoreAdjacencyToFile(params.adjacencyfile.leaf().string(), params.adjacencyfile.branch_path().string());
+    mol->StoreAdjacencyToFile(params.adjacencyfile.get().leaf().string(), params.adjacencyfile.get().branch_path().string());
 #else
-    mol->StoreAdjacencyToFile(params.adjacencyfile.leaf(), params.adjacencyfile.branch_path().string());
+    mol->StoreAdjacencyToFile(params.adjacencyfile.get().leaf(), params.adjacencyfile.get().branch_path().string());
 #endif
   }
Index: src/Actions/MoleculeAction/SaveBondsAction.cpp
===================================================================
--- src/Actions/MoleculeAction/SaveBondsAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/SaveBondsAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -42,10 +42,10 @@
   for (World::MoleculeSelectionIterator iter = World::getInstance().beginMoleculeSelection(); iter != World::getInstance().endMoleculeSelection(); ++iter) {
     mol = iter->second;
-    LOG(0, "Storing bonds to path " << params.bondsfile << ".");
+    LOG(0, "Storing bonds to path " << params.bondsfile.get() << ".");
     // TODO: sollte stream, nicht filenamen direkt nutzen, besser fuer unit tests
 #if BOOST_VERSION >= 104600
-    mol->StoreBondsToFile(params.bondsfile.leaf().string(), params.bondsfile.branch_path().string());
+    mol->StoreBondsToFile(params.bondsfile.get().leaf().string(), params.bondsfile.get().branch_path().string());
 #else
-    mol->StoreBondsToFile(params.bondsfile.leaf(), params.bondsfile.branch_path().string());
+    mol->StoreBondsToFile(params.bondsfile.get().leaf(), params.bondsfile.get().branch_path().string());
 #endif
   }
Index: src/Actions/MoleculeAction/SaveSelectedMoleculesAction.cpp
===================================================================
--- src/Actions/MoleculeAction/SaveSelectedMoleculesAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/SaveSelectedMoleculesAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -38,17 +38,17 @@
 /** =========== define the function ====================== */
 Action::state_ptr MoleculeSaveSelectedMoleculesAction::performCall() {
-  LOG(1, "Storing selected molecules to file " << params.filename << ".");
+  LOG(1, "Storing selected molecules to file " << params.filename.get() << ".");
 
   // extract suffix
   std::string FilenameSuffix;
   std::string FilenamePrefix;
-  if (params.filename.has_filename()) {
+  if (params.filename.get().has_filename()) {
     // get suffix
 #if BOOST_VERSION >= 104600
-      FilenameSuffix = params.filename.extension().string().substr(1); // remove the prefixed "."
-      FilenamePrefix = params.filename.stem().string();
+      FilenameSuffix = params.filename.get().extension().string().substr(1); // remove the prefixed "."
+      FilenamePrefix = params.filename.get().stem().string();
 #else
-      FilenameSuffix = params.filename.extension().substr(1); // remove the prefixed "."
-      FilenamePrefix = params.filename.stem();
+      FilenameSuffix = params.filename.get().extension().substr(1); // remove the prefixed "."
+      FilenamePrefix = params.filename.get().stem();
 #endif
   } else {
@@ -60,9 +60,9 @@
   // parse the file
   boost::filesystem::ofstream output;
-  output.open(params.filename);
+  output.open(params.filename.get());
   if (!output.fail()) {
     FormatParserStorage::getInstance().saveSelectedMolecules(output, FilenameSuffix);
   } else {
-    ELOG(1, "Could not open file " << params.filename << ".");
+    ELOG(1, "Could not open file " << params.filename.get() << ".");
   }
   output.close();
Index: src/Actions/MoleculeAction/SaveTemperatureAction.cpp
===================================================================
--- src/Actions/MoleculeAction/SaveTemperatureAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/SaveTemperatureAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -42,7 +42,7 @@
 /** =========== define the function ====================== */
 Action::state_ptr MoleculeSaveTemperatureAction::performCall() {
-  LOG(1, "Storing temperatures in " << params.temperaturefile << ".");
+  LOG(1, "Storing temperatures in " << params.temperaturefile.get() << ".");
   ofstream output;
-  output.open(params.temperaturefile.string().c_str(), ios::trunc);
+  output.open(params.temperaturefile.get().string().c_str(), ios::trunc);
   AtomSetMixin<std::vector<atom *> > set(World::getInstance().getSelectedAtoms());
   const size_t MDSteps = set.getMaxTrajectorySize();
Index: src/Actions/MoleculeAction/SuspendInWaterAction.cpp
===================================================================
--- src/Actions/MoleculeAction/SuspendInWaterAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/SuspendInWaterAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -44,8 +44,8 @@
     mol = iter->second;
     LOG(0, "Evaluating necessary cell volume for a cluster suspended in water.");
-    if (params.density < 1.0) {
+    if (params.density.get() < 1.0) {
       ELOG(1, "Density must be greater than 1.0g/cm^3!");
     } else {
-      PrepareClustersinWater(World::getInstance().getConfig(), mol, volume, params.density);  // if volume == 0, will calculate from ConvexEnvelope
+      PrepareClustersinWater(World::getInstance().getConfig(), mol, volume, params.density.get());  // if volume == 0, will calculate from ConvexEnvelope
     }
   }
Index: src/Actions/MoleculeAction/VerletIntegrationAction.cpp
===================================================================
--- src/Actions/MoleculeAction/VerletIntegrationAction.cpp	(revision be21faee0c27bbf2439e848bacfe01d94e55d9e0)
+++ src/Actions/MoleculeAction/VerletIntegrationAction.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -45,12 +45,12 @@
   // TODO: sollte besser stream nutzen, nicht filename direkt (es sei denn, ist prefix), besser fuer unit test
   char outputname[MAXSTRINGSIZE];
-  strcpy(outputname, params.forcesfile.string().c_str());
+  strcpy(outputname, params.forcesfile.get().string().c_str());
   AtomSetMixin<std::vector<atom *> > set(World::getInstance().getSelectedAtoms());
-  for (int step = 0; step < params.MDSteps; ++step) {
-    VerletForceIntegration<std::vector<atom *> > Verlet(set, params.Deltat, step, false);
-    if (!Verlet(outputname, 1, 0, params.FixedCenterOfMass))
-      LOG(2, "File " << params.forcesfile << " not found.");
+  for (int step = 0; step < params.MDSteps.get(); ++step) {
+    VerletForceIntegration<std::vector<atom *> > Verlet(set, params.Deltat.get(), step, false);
+    if (!Verlet(outputname, 1, 0, params.FixedCenterOfMass.get()))
+      LOG(2, "File " << params.forcesfile.get() << " not found.");
     else
-      LOG(2, "File " << params.forcesfile << " found and parsed.");
+      LOG(2, "File " << params.forcesfile.get() << " found and parsed.");
   }
 
