Index: src/UIElements/CommandLineUI/CommandLineDialog.cpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineDialog.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/CommandLineDialog.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -40,86 +40,86 @@
 }
 
-void CommandLineDialog::queryInt(const char* title, std::string _description){
-  registerQuery(new IntCommandLineQuery(title, _description));
+void CommandLineDialog::queryInt(Parameter<int> &param, const char* title, std::string _description){
+  registerQuery(new IntCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryInts(const char* title, std::string _description){
-  registerQuery(new IntsCommandLineQuery(title, _description));
+void CommandLineDialog::queryInts(Parameter<std::vector<int> > &param, const char* title, std::string _description){
+  registerQuery(new IntsCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryUnsignedInt(const char* title, std::string _description){
-  registerQuery(new UnsignedIntCommandLineQuery(title, _description));
+void CommandLineDialog::queryUnsignedInt(Parameter<unsigned int> &param, const char* title, std::string _description){
+  registerQuery(new UnsignedIntCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryUnsignedInts(const char* title, std::string _description){
-  registerQuery(new UnsignedIntsCommandLineQuery(title, _description));
+void CommandLineDialog::queryUnsignedInts(Parameter<std::vector<unsigned int> > &param, const char* title, std::string _description){
+  registerQuery(new UnsignedIntsCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryBoolean(const char* title, std::string _description){
-  registerQuery(new BooleanCommandLineQuery(title, _description));
+void CommandLineDialog::queryBoolean(Parameter<bool> &param, const char* title, std::string _description){
+  registerQuery(new BooleanCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryDouble(const char* title, std::string _description){
-  registerQuery(new DoubleCommandLineQuery(title, _description));
+void CommandLineDialog::queryDouble(Parameter<double> &param, const char* title, std::string _description){
+  registerQuery(new DoubleCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryDoubles(const char* title, std::string _description){
-  registerQuery(new DoublesCommandLineQuery(title, _description));
+void CommandLineDialog::queryDoubles(Parameter<std::vector<double> > &param, const char* title, std::string _description){
+  registerQuery(new DoublesCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryString(const char* title, std::string _description){
-  registerQuery(new StringCommandLineQuery(title, _description));
+void CommandLineDialog::queryString(Parameter<std::string> &param, const char* title, std::string _description){
+  registerQuery(new StringCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryStrings(const char* title, std::string _description){
-  registerQuery(new StringsCommandLineQuery(title, _description));
+void CommandLineDialog::queryStrings(Parameter<std::vector<std::string> > &param, const char* title, std::string _description){
+  registerQuery(new StringsCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryAtom(const char* title, std::string _description) {
-  registerQuery(new AtomCommandLineQuery(title, _description));
+void CommandLineDialog::queryAtom(Parameter<const atom *> &param, const char* title, std::string _description) {
+  registerQuery(new AtomCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryAtoms(const char* title, std::string _description) {
-  registerQuery(new AtomsCommandLineQuery(title, _description));
+void CommandLineDialog::queryAtoms(Parameter<std::vector<const atom *> > &param, const char* title, std::string _description) {
+  registerQuery(new AtomsCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryMolecule(const char* title, std::string _description) {
-  registerQuery(new MoleculeCommandLineQuery(title, _description));
+void CommandLineDialog::queryMolecule(Parameter<const molecule *> &param, const char* title, std::string _description) {
+  registerQuery(new MoleculeCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryMolecules(const char* title, std::string _description) {
-  registerQuery(new MoleculesCommandLineQuery(title, _description));
+void CommandLineDialog::queryMolecules(Parameter<std::vector<const molecule *> > &param, const char* title, std::string _description) {
+  registerQuery(new MoleculesCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryVector(const char* title, bool check, std::string _description) {
-  registerQuery(new VectorCommandLineQuery(title,check, _description));
+void CommandLineDialog::queryVector(Parameter<Vector> &param, const char* title, bool check, std::string _description) {
+  registerQuery(new VectorCommandLineQuery(param, title,check, _description));
 }
 
-void CommandLineDialog::queryVectors(const char* title, bool check, std::string _description) {
-  registerQuery(new VectorsCommandLineQuery(title,check, _description));
+void CommandLineDialog::queryVectors(Parameter<std::vector<Vector> > &param, const char* title, bool check, std::string _description) {
+  registerQuery(new VectorsCommandLineQuery(param, title,check, _description));
 }
 
-void CommandLineDialog::queryBox(const char* title, std::string _description) {
-  registerQuery(new BoxCommandLineQuery(title,_description));
+void CommandLineDialog::queryRealSpaceMatrix(Parameter<RealSpaceMatrix> &param, const char* title, std::string _description) {
+  registerQuery(new RealSpaceMatrixCommandLineQuery(param, title,_description));
 }
 
-void CommandLineDialog::queryElement(const char* title, std::string _description){
-  registerQuery(new ElementCommandLineQuery(title, _description));
+void CommandLineDialog::queryElement(Parameter<const element *> &param, const char* title, std::string _description){
+  registerQuery(new ElementCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryElements(const char* title, std::string _description){
-  registerQuery(new ElementsCommandLineQuery(title, _description));
+void CommandLineDialog::queryElements(Parameter<std::vector<const element *> > &param, const char* title, std::string _description){
+  registerQuery(new ElementsCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryFile(const char* title, std::string _description){
-  registerQuery(new FileCommandLineQuery(title, _description));
+void CommandLineDialog::queryFile(Parameter<boost::filesystem::path> &param, const char* title, std::string _description){
+  registerQuery(new FileCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryFiles(const char* title, std::string _description){
-  registerQuery(new FilesCommandLineQuery(title, _description));
+void CommandLineDialog::queryFiles(Parameter<std::vector< boost::filesystem::path> > &param, const char* title, std::string _description){
+  registerQuery(new FilesCommandLineQuery(param, title, _description));
 }
 
-void CommandLineDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string _description){
-  registerQuery(new RandomNumberDistribution_ParametersCommandLineQuery(title, _description));
+void CommandLineDialog::queryRandomNumberDistribution_Parameters(Parameter<RandomNumberDistribution_Parameters> &param, const char* title, std::string _description){
+  registerQuery(new RandomNumberDistribution_ParametersCommandLineQuery(param, title, _description));
 }
 
Index: src/UIElements/CommandLineUI/CommandLineDialog.hpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineDialog.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/CommandLineDialog.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -34,26 +34,25 @@
 
   virtual void queryEmpty(const char *, std::string = "");
-  virtual void queryInt(const char *, std::string = "");
-  virtual void queryInts(const char *, std::string = "");
-  virtual void queryUnsignedInt(const char *, std::string = "");
-  virtual void queryUnsignedInts(const char *, std::string = "");
-  virtual void queryBoolean(const char *, std::string = "");
-  virtual void queryString(const char*, std::string = "");
-  virtual void queryStrings(const char*, std::string = "");
-  virtual void queryDouble(const char*, std::string = "");
-  virtual void queryDoubles(const char*, std::string = "");
-  virtual void queryAtom(const char*, std::string = "");
-  virtual void queryAtoms(const char*, std::string = "");
-  virtual void queryMolecule(const char*, std::string = "");
-  virtual void queryMolecules(const char*, std::string = "");
-  virtual void queryVector(const char*, bool, std::string = "");
-  virtual void queryVectors(const char*, bool, std::string = "");
-  virtual void queryBox(const char*, std::string = "");
-  virtual void queryElement(const char*, std::string = "");
-  virtual void queryElements(const char*, std::string = "");
-  virtual void queryFile(const char*, std::string = "");
-  virtual void queryFiles(const char*, std::string = "");
-  virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = "");
-protected:
+  virtual void queryInt(Parameter<int> &, const char *, std::string = "");
+  virtual void queryInts(Parameter<std::vector<int> > &, const char *, std::string = "");
+  virtual void queryUnsignedInt(Parameter<unsigned int> &, const char *, std::string = "");
+  virtual void queryUnsignedInts(Parameter<std::vector<unsigned int> > &, const char *, std::string = "");
+  virtual void queryBoolean(Parameter<bool> &, const char *, std::string = "");
+  virtual void queryString(Parameter<std::string> &, const char*, std::string = "");
+  virtual void queryStrings(Parameter<std::vector<std::string> > &, const char*, std::string = "");
+  virtual void queryDouble(Parameter<double> &, const char*, std::string = "");
+  virtual void queryDoubles(Parameter<std::vector<double> > &, const char*, std::string = "");
+  virtual void queryAtom(Parameter<const atom *> &, const char*, std::string = "");
+  virtual void queryAtoms(Parameter<std::vector<const atom *> > &, const char*, std::string = "");
+  virtual void queryMolecule(Parameter<const molecule *> &, const char*, std::string = "");
+  virtual void queryMolecules(Parameter<std::vector<const molecule *> > &, const char*, std::string = "");
+  virtual void queryVector(Parameter<Vector> &, const char*, bool, std::string = "");
+  virtual void queryVectors(Parameter<std::vector<Vector> > &, const char*, bool, std::string = "");
+  virtual void queryRealSpaceMatrix(Parameter<RealSpaceMatrix> &, const char*, std::string = "");
+  virtual void queryElement(Parameter<const element *> &, const char*, std::string = "");
+  virtual void queryElements(Parameter<std::vector<const element *> > &, const char*, std::string = "");
+  virtual void queryFile(Parameter<boost::filesystem::path> &, const char*, std::string = "");
+  virtual void queryFiles(Parameter<std::vector< boost::filesystem::path> > &, const char*, std::string = "");
+  virtual void queryRandomNumberDistribution_Parameters(Parameter<RandomNumberDistribution_Parameters> &, const char*, std::string = "");
   // specialized stuff for command line queries
   // all placed into Query/CommandLineQuery.hpp
@@ -62,5 +61,4 @@
   class AtomsCommandLineQuery;
   class BooleanCommandLineQuery;
-  class BoxCommandLineQuery;
   class DoubleCommandLineQuery;
   class DoublesCommandLineQuery;
@@ -74,4 +72,5 @@
   class MoleculeCommandLineQuery;
   class MoleculesCommandLineQuery;
+  class RealSpaceMatrixCommandLineQuery;
   class StringCommandLineQuery;
   class StringsCommandLineQuery;
Index: src/UIElements/CommandLineUI/CommandLineParser.cpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineParser.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/CommandLineParser.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -193,13 +193,4 @@
         ;
       break;
-    case TypeEnumContainer::BoxType:
-      OptionList->add_options()
-        (currentOption->getKeyAndShortForm().c_str(),
-//            currentOption->hasDefaultValue() ?
-//                  po::value < BoxValue >()->default_value(boost::lexical_cast<BoxValue>(currentOption->getDefaultValue().c_str())) :
-                  po::value < BoxValue >(),
-                  currentOption->getDescription().c_str())
-        ;
-      break;
     case TypeEnumContainer::FileType:
       OptionList->add_options()
@@ -370,4 +361,13 @@
                   po::value < std::string >()->default_value(boost::lexical_cast< std::string >(currentOption->getDefaultValue().c_str())) :
                   po::value < std::string >(),
+                  currentOption->getDescription().c_str())
+        ;
+      break;
+    case TypeEnumContainer::RealSpaceMatrixType:
+      OptionList->add_options()
+        (currentOption->getKeyAndShortForm().c_str(),
+//            currentOption->hasDefaultValue() ?
+//                  po::value < RealSpaceMatrixValue >()->default_value(boost::lexical_cast<BoxValue>(currentOption->getDefaultValue().c_str())) :
+                  po::value < RealSpaceMatrixValue >(),
                   currentOption->getDescription().c_str())
         ;
Index: src/UIElements/CommandLineUI/CommandLineParser_validate.cpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineParser_validate.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/CommandLineParser_validate.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -84,7 +84,7 @@
 }
 
-void validate(boost::any& v, const std::vector<std::string>& values, BoxValue *, int)
+void validate(boost::any& v, const std::vector<std::string>& values, RealSpaceMatrixValue *, int)
 {
-  BoxValue BV;
+  RealSpaceMatrixValue RSMV;
   std::vector<std::string> components;
 
@@ -129,6 +129,6 @@
   }
   for (size_t i=0;i<(NDIM*(NDIM+1))/2; ++i)
-    BV.matrix[i] = boost::lexical_cast<double>(components.at(i));
-  v = boost::any(BoxValue(BV));
+    RSMV.matrix[i] = boost::lexical_cast<double>(components.at(i));
+  v = boost::any(RealSpaceMatrixValue(RSMV));
 }
 
Index: src/UIElements/CommandLineUI/CommandLineParser_validate.hpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineParser_validate.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/CommandLineParser_validate.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -22,9 +22,9 @@
 #include <boost/lexical_cast.hpp>
 
-class BoxValue;
+class RealSpaceMatrixValue;
 class VectorValue;
 
 void validate(boost::any& v, const std::vector<std::string>& values, VectorValue *, int);
-void validate(boost::any& v, const std::vector<std::string>& values, BoxValue *, int);
+void validate(boost::any& v, const std::vector<std::string>& values, RealSpaceMatrixValue *, int);
 void validate(boost::any& v, const std::vector<std::string>& values, boost::filesystem::path *, int);
 
Index: src/UIElements/CommandLineUI/Query/AtomCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/AtomCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/AtomCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -33,6 +33,6 @@
 using namespace std;
 
-CommandLineDialog::AtomCommandLineQuery::AtomCommandLineQuery(std::string title, std::string _description) :
-    Dialog::AtomQuery(title, _description)
+CommandLineDialog::AtomCommandLineQuery::AtomCommandLineQuery(Parameter<const atom *> &param, std::string title, std::string _description) :
+    Dialog::AtomQuery(param, title, _description)
 {}
 
@@ -43,5 +43,5 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     IdxOfAtom = CommandLineParser::getInstance().vm[getTitle()].as<int>();
-    tmp = World::getInstance().getAtom(AtomById(IdxOfAtom));
+    tmp.set(World::getInstance().getAtom(AtomById(IdxOfAtom)));
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/AtomsCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/AtomsCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/AtomsCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,6 +28,6 @@
 #include "World.hpp"
 
-CommandLineDialog::AtomsCommandLineQuery::AtomsCommandLineQuery(std::string title, std::string _description) :
-    Dialog::AtomsQuery(title, _description)
+CommandLineDialog::AtomsCommandLineQuery::AtomsCommandLineQuery(Parameter<std::vector<const atom *> > &param, std::string title, std::string _description) :
+    Dialog::AtomsQuery(param, title, _description)
 {}
 
@@ -38,9 +38,11 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     IdxOfAtom = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
+    std::vector<const atom *> temp_atoms;
     for (std::vector<int>::iterator iter = IdxOfAtom.begin(); iter != IdxOfAtom.end(); ++iter) {
       temp = World::getInstance().getAtom(AtomById(*iter));
       if (temp)
-        tmp.push_back(temp);
+        temp_atoms.push_back(temp);
     }
+    tmp.set(temp_atoms);
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/BooleanCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/BooleanCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/BooleanCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::BooleanCommandLineQuery::BooleanCommandLineQuery(std::string title, std::string _description) :
-    Dialog::BooleanQuery(title, _description)
+CommandLineDialog::BooleanCommandLineQuery::BooleanCommandLineQuery(Parameter<bool> &param, std::string title, std::string _description) :
+    Dialog::BooleanQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::BooleanCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as<bool>();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as<bool>());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/BoxCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/BoxCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/*
- * Project: MoleCuilder
- * Description: creates and alters molecular systems
- * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
- * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
- */
-
-/*
- * BoxCommandLineQuery.cpp
- *
- *  Created on: Oct 25, 2010
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "Actions/Values.hpp"
-#include "CommandLineUI/Query/CommandLineQuery.hpp"
-#include "CommandLineUI/CommandLineParser.hpp"
-#include "CodePatterns/Log.hpp"
-#include "CodePatterns/Verbose.hpp"
-#include "LinearAlgebra/RealSpaceMatrix.hpp"
-
-CommandLineDialog::BoxCommandLineQuery::BoxCommandLineQuery(std::string title, std::string _description) :
-    Dialog::BoxQuery(title, _description)
-{}
-
-CommandLineDialog::BoxCommandLineQuery::~BoxCommandLineQuery()
-{}
-
-bool CommandLineDialog::BoxCommandLineQuery::handle() {
-  BoxValue temp;
-  if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    temp = CommandLineParser::getInstance().vm[getTitle()].as< BoxValue >();
-    tmp = temp.toBox();
-    return true;
-  } else {
-    ELOG(1, "CommandLineUI parsing error: Missing symmetric box matrix for " << getTitle() << ".");
-    return false;
-  }
-}
-
Index: src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp
===================================================================
--- src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -26,5 +26,5 @@
 class CommandLineDialog::IntCommandLineQuery : public Dialog::IntQuery {
 public:
-  IntCommandLineQuery(std::string title, std::string _description = "");
+  IntCommandLineQuery(Parameter<int> &param, std::string title, std::string _description = "");
   virtual ~IntCommandLineQuery();
   virtual bool handle();
@@ -33,5 +33,5 @@
 class CommandLineDialog::IntsCommandLineQuery : public Dialog::IntsQuery {
 public:
-  IntsCommandLineQuery(std::string title, std::string _description = "");
+  IntsCommandLineQuery(Parameter<std::vector<int> > &param, std::string title, std::string _description = "");
   virtual ~IntsCommandLineQuery();
   virtual bool handle();
@@ -40,5 +40,5 @@
 class CommandLineDialog::UnsignedIntCommandLineQuery : public Dialog::UnsignedIntQuery {
 public:
-  UnsignedIntCommandLineQuery(std::string title, std::string _description = "");
+  UnsignedIntCommandLineQuery(Parameter<unsigned int> &param, std::string title, std::string _description = "");
   virtual ~UnsignedIntCommandLineQuery();
   virtual bool handle();
@@ -47,5 +47,5 @@
 class CommandLineDialog::UnsignedIntsCommandLineQuery : public Dialog::UnsignedIntsQuery {
 public:
-  UnsignedIntsCommandLineQuery(std::string title, std::string _description = "");
+  UnsignedIntsCommandLineQuery(Parameter<std::vector<unsigned int> > &param, std::string title, std::string _description = "");
   virtual ~UnsignedIntsCommandLineQuery();
   virtual bool handle();
@@ -54,5 +54,5 @@
 class CommandLineDialog::BooleanCommandLineQuery : public Dialog::BooleanQuery {
 public:
-  BooleanCommandLineQuery(std::string title, std::string _description = "");
+  BooleanCommandLineQuery(Parameter<bool> &param, std::string title, std::string _description = "");
   virtual ~BooleanCommandLineQuery();
   virtual bool handle();
@@ -61,5 +61,5 @@
 class CommandLineDialog::DoubleCommandLineQuery : public Dialog::DoubleQuery {
 public:
-  DoubleCommandLineQuery(std::string title, std::string _description = "");
+  DoubleCommandLineQuery(Parameter<double> &param, std::string title, std::string _description = "");
   virtual ~DoubleCommandLineQuery();
   virtual bool handle();
@@ -68,5 +68,5 @@
 class CommandLineDialog::DoublesCommandLineQuery : public Dialog::DoublesQuery {
 public:
-  DoublesCommandLineQuery(std::string title, std::string _description = "");
+  DoublesCommandLineQuery(Parameter<std::vector<double> > &param, std::string title, std::string _description = "");
   virtual ~DoublesCommandLineQuery();
   virtual bool handle();
@@ -75,5 +75,5 @@
 class CommandLineDialog::StringCommandLineQuery : public Dialog::StringQuery {
 public:
-  StringCommandLineQuery(std::string title, std::string _description = "");
+  StringCommandLineQuery(Parameter<std::string> &param, std::string title, std::string _description = "");
   virtual ~StringCommandLineQuery();
   virtual bool handle();
@@ -82,5 +82,5 @@
 class CommandLineDialog::StringsCommandLineQuery : public Dialog::StringsQuery {
 public:
-  StringsCommandLineQuery(std::string title, std::string _description = "");
+  StringsCommandLineQuery(Parameter<std::vector<std::string> > &param, std::string title, std::string _description = "");
   virtual ~StringsCommandLineQuery();
   virtual bool handle();
@@ -89,5 +89,5 @@
 class CommandLineDialog::AtomCommandLineQuery : public Dialog::AtomQuery {
 public:
-  AtomCommandLineQuery(std::string title, std::string _description = "");
+  AtomCommandLineQuery(Parameter<const atom *> &param, std::string title, std::string _description = "");
   virtual ~AtomCommandLineQuery();
   virtual bool handle();
@@ -96,5 +96,5 @@
 class CommandLineDialog::AtomsCommandLineQuery : public Dialog::AtomsQuery {
 public:
-  AtomsCommandLineQuery(std::string title, std::string _description = "");
+  AtomsCommandLineQuery(Parameter<std::vector<const atom *> > &param, std::string title, std::string _description = "");
   virtual ~AtomsCommandLineQuery();
   virtual bool handle();
@@ -103,5 +103,5 @@
 class CommandLineDialog::MoleculeCommandLineQuery : public Dialog::MoleculeQuery {
 public:
-  MoleculeCommandLineQuery(std::string title, std::string _description = "");
+  MoleculeCommandLineQuery(Parameter<const molecule *> &param, std::string title, std::string _description = "");
   virtual ~MoleculeCommandLineQuery();
   virtual bool handle();
@@ -110,5 +110,5 @@
 class CommandLineDialog::MoleculesCommandLineQuery : public Dialog::MoleculesQuery {
 public:
-  MoleculesCommandLineQuery(std::string title, std::string _description = "");
+  MoleculesCommandLineQuery(Parameter<std::vector<const molecule *> > &param, std::string title, std::string _description = "");
   virtual ~MoleculesCommandLineQuery();
   virtual bool handle();
@@ -117,5 +117,5 @@
 class CommandLineDialog::VectorCommandLineQuery : public Dialog::VectorQuery {
 public:
-  VectorCommandLineQuery(std::string title,bool _check, std::string _description = "");
+  VectorCommandLineQuery(Parameter<Vector> &param, std::string title,bool _check, std::string _description = "");
   virtual ~VectorCommandLineQuery();
   virtual bool handle();
@@ -124,13 +124,13 @@
 class CommandLineDialog::VectorsCommandLineQuery : public Dialog::VectorsQuery {
 public:
-  VectorsCommandLineQuery(std::string title,bool _check, std::string _description = "");
+  VectorsCommandLineQuery(Parameter<std::vector<Vector> > &param, std::string title,bool _check, std::string _description = "");
   virtual ~VectorsCommandLineQuery();
   virtual bool handle();
 };
 
-class CommandLineDialog::BoxCommandLineQuery : public Dialog::BoxQuery {
+class CommandLineDialog::RealSpaceMatrixCommandLineQuery : public Dialog::RealSpaceMatrixQuery {
 public:
-  BoxCommandLineQuery(std::string title, std::string _description = "");
-  virtual ~BoxCommandLineQuery();
+  RealSpaceMatrixCommandLineQuery(Parameter<RealSpaceMatrix> &param, std::string title, std::string _description = "");
+  virtual ~RealSpaceMatrixCommandLineQuery();
   virtual bool handle();
 };
@@ -138,5 +138,5 @@
 class CommandLineDialog::ElementCommandLineQuery : public Dialog::ElementQuery {
 public:
-  ElementCommandLineQuery(std::string title, std::string _description = "");
+  ElementCommandLineQuery(Parameter<const element *> &param, std::string title, std::string _description = "");
   virtual ~ElementCommandLineQuery();
   virtual bool handle();
@@ -145,5 +145,5 @@
 class CommandLineDialog::ElementsCommandLineQuery : public Dialog::ElementsQuery {
 public:
-  ElementsCommandLineQuery(std::string title, std::string _description = "");
+  ElementsCommandLineQuery(Parameter<std::vector<const element *> > &param, std::string title, std::string _description = "");
   virtual ~ElementsCommandLineQuery();
   virtual bool handle();
@@ -152,5 +152,5 @@
 class CommandLineDialog::FileCommandLineQuery : public Dialog::FileQuery {
 public:
-  FileCommandLineQuery(std::string title, std::string _description = "");
+  FileCommandLineQuery(Parameter<boost::filesystem::path> &param, std::string title, std::string _description = "");
   virtual ~FileCommandLineQuery();
   virtual bool handle();
@@ -159,5 +159,5 @@
 class CommandLineDialog::FilesCommandLineQuery : public Dialog::FilesQuery {
 public:
-  FilesCommandLineQuery(std::string title, std::string _description = "");
+  FilesCommandLineQuery(Parameter<std::vector< boost::filesystem::path> > &param, std::string title, std::string _description = "");
   virtual ~FilesCommandLineQuery();
   virtual bool handle();
@@ -166,5 +166,5 @@
 class CommandLineDialog::RandomNumberDistribution_ParametersCommandLineQuery : public Dialog::RandomNumberDistribution_ParametersQuery {
 public:
-  RandomNumberDistribution_ParametersCommandLineQuery(std::string title, std::string _description = "");
+  RandomNumberDistribution_ParametersCommandLineQuery(Parameter<RandomNumberDistribution_Parameters> &param, std::string title, std::string _description = "");
   virtual ~RandomNumberDistribution_ParametersCommandLineQuery();
   virtual bool handle();
Index: src/UIElements/CommandLineUI/Query/DoubleCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/DoubleCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/DoubleCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -26,6 +26,6 @@
 
 
-CommandLineDialog::DoubleCommandLineQuery::DoubleCommandLineQuery(std::string title, std::string _description) :
-    Dialog::DoubleQuery(title, _description)
+CommandLineDialog::DoubleCommandLineQuery::DoubleCommandLineQuery(Parameter<double> &param, std::string title, std::string _description) :
+    Dialog::DoubleQuery(param, title, _description)
 {}
 
@@ -34,5 +34,5 @@
 bool CommandLineDialog::DoubleCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as<double>();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as<double>());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/DoublesCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/DoublesCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/DoublesCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::DoublesCommandLineQuery::DoublesCommandLineQuery(std::string title, std::string _description) :
-    Dialog::DoublesQuery(title, _description)
+CommandLineDialog::DoublesCommandLineQuery::DoublesCommandLineQuery(Parameter<std::vector<double> > &param, std::string title, std::string _description) :
+    Dialog::DoublesQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::DoublesCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<double> >();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as< std::vector<double> >());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/ElementCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/ElementCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/ElementCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,6 +28,6 @@
 #include "World.hpp"
 
-CommandLineDialog::ElementCommandLineQuery::ElementCommandLineQuery(std::string title, std::string _description) :
-    Dialog::ElementQuery(title, _description)
+CommandLineDialog::ElementCommandLineQuery::ElementCommandLineQuery(Parameter<const element*> &param, std::string title, std::string _description) :
+    Dialog::ElementQuery(param, title, _description)
 {}
 
@@ -40,6 +40,6 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     int Z = CommandLineParser::getInstance().vm[getTitle()].as< int >();
-    tmp = periode->FindElement(Z);
-    ASSERT(tmp != NULL, "Invalid element specified in ElementCommandLineQuery");
+    tmp.set(periode->FindElement(Z));
+    ASSERT(tmp.get() != NULL, "Invalid element specified in ElementCommandLineQuery");
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/ElementsCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/ElementsCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/ElementsCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,6 +28,6 @@
 #include "World.hpp"
 
-CommandLineDialog::ElementsCommandLineQuery::ElementsCommandLineQuery(std::string title, std::string _description) :
-    Dialog::ElementsQuery(title, _description)
+CommandLineDialog::ElementsCommandLineQuery::ElementsCommandLineQuery(Parameter<std::vector<const element*> > &param, std::string title, std::string _description) :
+    Dialog::ElementsQuery(param, title, _description)
 {}
 
@@ -40,9 +40,11 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     vector<int> AllElements = CommandLineParser::getInstance().vm[getTitle()].as< vector<int> >();
+    vector<const element *> temp_elements;
     for (vector<int>::iterator ZRunner = AllElements.begin(); ZRunner != AllElements.end(); ++ZRunner) {
       temp = periode->FindElement(*ZRunner);
       ASSERT(temp != NULL, "Invalid element specified in ElementCommandLineQuery");
-      tmp.push_back(temp);
+      temp_elements.push_back(temp);
     }
+    tmp.set(temp_elements);
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/FileCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/FileCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/FileCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::FileCommandLineQuery::FileCommandLineQuery(std::string title, std::string _description) :
-    Dialog::FileQuery(title, _description)
+CommandLineDialog::FileCommandLineQuery::FileCommandLineQuery(Parameter<boost::filesystem::path> &param, std::string title, std::string _description) :
+    Dialog::FileQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::FileCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as< boost::filesystem::path >();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as< boost::filesystem::path >());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::FilesCommandLineQuery::FilesCommandLineQuery(std::string title, std::string _description) :
-    Dialog::FilesQuery(title, _description)
+CommandLineDialog::FilesCommandLineQuery::FilesCommandLineQuery(Parameter<std::vector< boost::filesystem::path> > &param, std::string title, std::string _description) :
+    Dialog::FilesQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::FilesCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<boost::filesystem::path> >();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as< std::vector<boost::filesystem::path> >());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/IntCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/IntCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/IntCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::IntCommandLineQuery::IntCommandLineQuery(std::string title, std::string _description) :
-    Dialog::IntQuery(title, _description)
+CommandLineDialog::IntCommandLineQuery::IntCommandLineQuery(Parameter<int> &param, std::string title, std::string _description) :
+    Dialog::IntQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::IntCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as<int>();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as<int>());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/IntsCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/IntsCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/IntsCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::IntsCommandLineQuery::IntsCommandLineQuery(std::string title, std::string _description) :
-    Dialog::IntsQuery(title, _description)
+CommandLineDialog::IntsCommandLineQuery::IntsCommandLineQuery(Parameter<std::vector<int> > &param, std::string title, std::string _description) :
+    Dialog::IntsQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::IntsCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/MoleculeCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/MoleculeCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/MoleculeCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,6 +28,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::MoleculeCommandLineQuery::MoleculeCommandLineQuery(std::string title, std::string _description) :
-    Dialog::MoleculeQuery(title, _description)
+CommandLineDialog::MoleculeCommandLineQuery::MoleculeCommandLineQuery(Parameter<const molecule *> &param, std::string title, std::string _description) :
+    Dialog::MoleculeQuery(param, title, _description)
 {}
 
@@ -38,5 +38,5 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     IdxOfMol = CommandLineParser::getInstance().vm[getTitle()].as<int>();
-    tmp = World::getInstance().getMolecule(MoleculeById(IdxOfMol));
+    tmp.set(World::getInstance().getMolecule(MoleculeById(IdxOfMol)));
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/MoleculesCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,6 +29,6 @@
 #include "World.hpp"
 
-CommandLineDialog::MoleculesCommandLineQuery::MoleculesCommandLineQuery(std::string title, std::string _description) :
-    Dialog::MoleculesQuery(title, _description)
+CommandLineDialog::MoleculesCommandLineQuery::MoleculesCommandLineQuery(Parameter<std::vector<const molecule *> > &param, std::string title, std::string _description) :
+    Dialog::MoleculesQuery(param, title, _description)
 {}
 
@@ -39,9 +39,11 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     IdxOfMol = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<int> >();
+    std::vector<const molecule *> temp_molecules;
     for (std::vector<int>::iterator iter = IdxOfMol.begin(); iter != IdxOfMol.end(); ++iter) {
       temp = World::getInstance().getMolecule(MoleculeById(*iter));
       if (temp)
-        tmp.push_back(temp);
+        temp_molecules.push_back(temp);
     }
+    tmp.set(temp_molecules);
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/RandomNumberDistribution_ParametersCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/RandomNumberDistribution_ParametersCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/RandomNumberDistribution_ParametersCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,6 +31,6 @@
 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp"
 
-CommandLineDialog::RandomNumberDistribution_ParametersCommandLineQuery::RandomNumberDistribution_ParametersCommandLineQuery(std::string title, std::string _description) :
-    Dialog::RandomNumberDistribution_ParametersQuery(title, _description)
+CommandLineDialog::RandomNumberDistribution_ParametersCommandLineQuery::RandomNumberDistribution_ParametersCommandLineQuery(Parameter<RandomNumberDistribution_Parameters> &param, std::string title, std::string _description) :
+    Dialog::RandomNumberDistribution_ParametersQuery(param, title, _description)
 {}
 
@@ -42,5 +42,7 @@
     std::stringstream text(stringtext);
 //    LOG(1, "INFO: Parameter set from CommandLine is '" << text.str() << "'");
-    text >> tmp;
+    RandomNumberDistribution_Parameters temp_params;
+    text >> temp_params;
+    tmp.set(temp_params);
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/RealSpaceMatrixCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/RealSpaceMatrixCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
+++ src/UIElements/CommandLineUI/Query/RealSpaceMatrixCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -0,0 +1,47 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2010-2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * BoxCommandLineQuery.cpp
+ *
+ *  Created on: Oct 25, 2010
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Actions/Values.hpp"
+#include "CommandLineUI/Query/CommandLineQuery.hpp"
+#include "CommandLineUI/CommandLineParser.hpp"
+#include "CodePatterns/Log.hpp"
+#include "CodePatterns/Verbose.hpp"
+#include "LinearAlgebra/RealSpaceMatrix.hpp"
+
+CommandLineDialog::RealSpaceMatrixCommandLineQuery::RealSpaceMatrixCommandLineQuery(Parameter<RealSpaceMatrix> &param, std::string title, std::string _description) :
+    Dialog::RealSpaceMatrixQuery(param, title, _description)
+{}
+
+CommandLineDialog::RealSpaceMatrixCommandLineQuery::~RealSpaceMatrixCommandLineQuery()
+{}
+
+bool CommandLineDialog::RealSpaceMatrixCommandLineQuery::handle() {
+  RealSpaceMatrixValue temp;
+  if (CommandLineParser::getInstance().vm.count(getTitle())) {
+    temp = CommandLineParser::getInstance().vm[getTitle()].as< RealSpaceMatrixValue >();
+    tmp.set(temp.toRealSpaceMatrix());
+    return true;
+  } else {
+    ELOG(1, "CommandLineUI parsing error: Missing symmetric box matrix for " << getTitle() << ".");
+    return false;
+  }
+}
+
Index: src/UIElements/CommandLineUI/Query/StringCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/StringCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/StringCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::StringCommandLineQuery::StringCommandLineQuery(std::string title, std::string _description) :
-    Dialog::StringQuery(title, _description)
+CommandLineDialog::StringCommandLineQuery::StringCommandLineQuery(Parameter<std::string> &param, std::string title, std::string _description) :
+    Dialog::StringQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::StringCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as<string>();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as<string>());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/StringsCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/StringsCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/StringsCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::StringsCommandLineQuery::StringsCommandLineQuery(std::string title, std::string _description) :
-    Dialog::StringsQuery(title, _description)
+CommandLineDialog::StringsCommandLineQuery::StringsCommandLineQuery(Parameter<std::vector<std::string> > &param, std::string title, std::string _description) :
+    Dialog::StringsQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::StringsCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<std::string> >();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as< std::vector<std::string> >());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/UnsignedIntCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/UnsignedIntCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/UnsignedIntCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::UnsignedIntCommandLineQuery::UnsignedIntCommandLineQuery(std::string title, std::string _description) :
-    Dialog::UnsignedIntQuery(title, _description)
+CommandLineDialog::UnsignedIntCommandLineQuery::UnsignedIntCommandLineQuery(Parameter<unsigned int> &param, std::string title, std::string _description) :
+    Dialog::UnsignedIntQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::UnsignedIntCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as<unsigned int>();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as<unsigned int>());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/UnsignedIntsCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/UnsignedIntsCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/UnsignedIntsCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,6 +25,6 @@
 #include "CodePatterns/Verbose.hpp"
 
-CommandLineDialog::UnsignedIntsCommandLineQuery::UnsignedIntsCommandLineQuery(std::string title, std::string _description) :
-    Dialog::UnsignedIntsQuery(title, _description)
+CommandLineDialog::UnsignedIntsCommandLineQuery::UnsignedIntsCommandLineQuery(Parameter<std::vector<unsigned int> > &param, std::string title, std::string _description) :
+    Dialog::UnsignedIntsQuery(param, title, _description)
 {}
 
@@ -33,5 +33,5 @@
 bool CommandLineDialog::UnsignedIntsCommandLineQuery::handle() {
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
-    tmp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<unsigned int> >();
+    tmp.set(CommandLineParser::getInstance().vm[getTitle()].as< std::vector<unsigned int> >());
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/VectorCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/VectorCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/VectorCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,6 +29,6 @@
 #include "World.hpp"
 
-CommandLineDialog::VectorCommandLineQuery::VectorCommandLineQuery(std::string title, bool _check, std::string _description) :
-    Dialog::VectorQuery(title,_check, _description)
+CommandLineDialog::VectorCommandLineQuery::VectorCommandLineQuery(Parameter<Vector> &param, std::string title, bool _check, std::string _description) :
+    Dialog::VectorQuery(param, title,_check, _description)
 {}
 
@@ -40,9 +40,10 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     temp = CommandLineParser::getInstance().vm[getTitle()].as< VectorValue >();
-    tmp = temp.toVector();
-    if ((check) && (!World::getInstance().getDomain().isValid(tmp))) {
-      ELOG(1, "Vector " << tmp << " would be outside of box domain.");
+    Vector temp_vector = temp.toVector();
+    if ((check) && (!World::getInstance().getDomain().isValid(temp_vector))) {
+      ELOG(1, "Vector " << temp_vector << " would be outside of box domain.");
       return false;
     }
+    tmp.set(temp_vector);
     return true;
   } else {
Index: src/UIElements/CommandLineUI/Query/VectorsCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/VectorsCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/VectorsCommandLineQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,6 +29,6 @@
 #include "World.hpp"
 
-CommandLineDialog::VectorsCommandLineQuery::VectorsCommandLineQuery(std::string title, bool _check, std::string _description) :
-    Dialog::VectorsQuery(title,_check, _description)
+CommandLineDialog::VectorsCommandLineQuery::VectorsCommandLineQuery(Parameter<std::vector<Vector> > &param, std::string title, bool _check, std::string _description) :
+    Dialog::VectorsQuery(param, title,_check, _description)
 {}
 
@@ -40,11 +40,13 @@
   if (CommandLineParser::getInstance().vm.count(getTitle())) {
     temporary = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<VectorValue> >();
+    std::vector<Vector> temp_vectors;
     for(std::vector<VectorValue>::iterator iter = temporary.begin(); iter != temporary.end(); ++iter) {
       temp = (*iter).toVector();
       if ((!check) || (World::getInstance().getDomain().isValid(temp)))
-        tmp.push_back(temp);
+        temp_vectors.push_back(temp);
       else
         ELOG(1, "Vector " << temp << " would be outside of box domain.");
     }
+    tmp.set(temp_vectors);
     return true;
   } else {
Index: src/UIElements/CommandLineUI/TypeEnumContainer.cpp
===================================================================
--- src/UIElements/CommandLineUI/TypeEnumContainer.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/TypeEnumContainer.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,6 +31,6 @@
 
 #include "Atom/atom.hpp"
-#include "Box.hpp"
 #include "LinearAlgebra/BoxVector.hpp"
+#include "LinearAlgebra/RealSpaceMatrix.hpp"
 #include "LinearAlgebra/Vector.hpp"
 #include "Element/element.hpp"
@@ -45,5 +45,5 @@
   TypeEnumMap[&typeid(void)] = NoneType;
   TypeEnumMap[&typeid(bool)] = BooleanType;
-  TypeEnumMap[&typeid(Box)] = BoxType;
+  TypeEnumMap[&typeid(RealSpaceMatrix)] = RealSpaceMatrixType;
   TypeEnumMap[&typeid(BoxVector)] = VectorType;
   TypeEnumMap[&typeid(Vector)] = VectorType;
Index: src/UIElements/CommandLineUI/TypeEnumContainer.hpp
===================================================================
--- src/UIElements/CommandLineUI/TypeEnumContainer.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/TypeEnumContainer.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,5 +28,4 @@
   enum EnumOfTypes { NoneType,
         BooleanType,
-        BoxType,
         FileType,
         ListOfFilesType,
@@ -47,5 +46,6 @@
         ElementType,
         ListOfElementsType,
-        RandomNumberDistribution_ParametersType
+        RandomNumberDistribution_ParametersType,
+        RealSpaceMatrixType
   };
 
Index: src/UIElements/CommandLineUI/unittests/CommandLineParser_ActionRegistry_ConsistencyUnitTest.cpp
===================================================================
--- src/UIElements/CommandLineUI/unittests/CommandLineParser_ActionRegistry_ConsistencyUnitTest.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/unittests/CommandLineParser_ActionRegistry_ConsistencyUnitTest.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,4 +28,6 @@
 #include "Actions/ActionTrait.hpp"
 #include "UIElements/CommandLineUI/CommandLineParser.hpp"
+#include "World.hpp"
+#include "WorldTime.hpp"
 
 #include "CommandLineParser_ActionRegistry_ConsistencyUnitTest.hpp"
@@ -45,5 +47,5 @@
 void CommandLineParser_ActionRegistry_ConsistencyTest::setUp()
 {
-  AR = ActionRegistry::getPointer();
+  CPPUNIT_ASSERT_NO_THROW(AR = ActionRegistry::getPointer());
   CLP = CommandLineParser::getPointer();
 };
@@ -54,4 +56,9 @@
   CommandLineParser::purgeInstance();
   ActionRegistry::purgeInstance();
+  // these come about because of the validators accessing them instantiated
+  // by ActionRegistry. In ActionRegistryUnitTest we used stubs for them but
+  // here we care whether default values are actually valid.
+  World::purgeInstance();
+  WorldTime::purgeInstance();
 };
 
