Index: src/UIElements/TextUI/Query/AtomTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/AtomTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/AtomTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -30,6 +30,6 @@
 #include "World.hpp"
 
-TextDialog::AtomTextQuery::AtomTextQuery(std::string title, std::string _description) :
-    Dialog::AtomQuery(title,_description)
+TextDialog::AtomTextQuery::AtomTextQuery(Parameter<const atom *> &param, std::string title, std::string _description) :
+    Dialog::AtomQuery(param, title,_description)
 {}
 
@@ -51,9 +51,10 @@
     }
 
-    tmp = World::getInstance().getAtom(AtomById(idxOfAtom));
-    if(!tmp && idxOfAtom!=-1){
+    const atom * temp_atom = World::getInstance().getAtom(AtomById(idxOfAtom));
+    if(!temp_atom && idxOfAtom!=-1){
       std::cout << "Invalid Atom Index" << idxOfAtom << std::endl;
       badInput = true;
     }
+    tmp.set(temp_atom);
 
   } while(badInput);
Index: src/UIElements/TextUI/Query/AtomsTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/AtomsTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/AtomsTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::AtomsTextQuery::AtomsTextQuery(std::string title, std::string _description) :
-    Dialog::AtomsQuery(title,_description)
+TextDialog::AtomsTextQuery::AtomsTextQuery(Parameter<std::vector<const atom *> > &param, std::string title, std::string _description) :
+    Dialog::AtomsQuery(param, title,_description)
 {}
 
@@ -44,4 +44,5 @@
   // dissect by " "
   std::string::iterator olditer = line.begin();
+  std::vector<const atom *> temp_atoms;
   for(std::string::iterator iter = line.begin(); iter != line.end(); ++iter) {
     if (*iter == ' ') {
@@ -53,5 +54,5 @@
         break;
       }
-      tmp.push_back(temp);
+      temp_atoms.push_back(temp);
       olditer = iter;
     }
@@ -63,7 +64,8 @@
     if(!temp && idxOfAtom!=-1) {
       std::cout << "Invalid Atom Index" << idxOfAtom << std::endl;
-      tmp.push_back(temp);
+      temp_atoms.push_back(temp);
     }
   }
+  tmp.set(temp_atoms);
 
   return (idxOfAtom!=-1);
Index: src/UIElements/TextUI/Query/BooleanTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/BooleanTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/BooleanTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::BooleanTextQuery::BooleanTextQuery(std::string title, std::string _description) :
-    Dialog::BooleanQuery(title,_description)
+TextDialog::BooleanTextQuery::BooleanTextQuery(Parameter<bool> &param, std::string title, std::string _description) :
+    Dialog::BooleanQuery(param, title,_description)
 {}
 
@@ -42,7 +42,7 @@
     std::cin >> input;
     if ((input == 'y' ) || (input == 'Y')) {
-      tmp = true;
+      tmp.set(true);
     } else if ((input == 'n' ) || (input == 'N')) {
-      tmp = false;
+      tmp.set(false);
     } else {
       badInput=true;
Index: src/UIElements/TextUI/Query/BoxTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/BoxTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/BoxTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -29,6 +29,6 @@
 
 
-TextDialog::BoxTextQuery::BoxTextQuery(std::string title, std::string _description) :
-    Dialog::BoxQuery(title,_description)
+TextDialog::BoxTextQuery::BoxTextQuery(Parameter<Box> &param, std::string title, std::string _description) :
+    Dialog::BoxQuery(param, title,_description)
 {}
 
@@ -56,5 +56,7 @@
   M.set(2,1, temp[4]);
   M.set(2,2, temp[5]);
-  tmp.setM(M);
+  Box temp_box;
+  temp_box.setM(M);
+  tmp.set(temp_box);
   return true;
 }
Index: src/UIElements/TextUI/Query/DoubleTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/DoubleTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/DoubleTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::DoubleTextQuery::DoubleTextQuery(std::string title, std::string _description) :
-    Dialog::DoubleQuery(title,_description)
+TextDialog::DoubleTextQuery::DoubleTextQuery(Parameter<double> &param, std::string title, std::string _description) :
+    Dialog::DoubleQuery(param, title,_description)
 {}
 
@@ -38,6 +38,7 @@
   do{
     badInput = false;
-    std::cout << getDescription() << ": ";
-    std::cin >> tmp;
+    std::cout << getDescription() << ": ";\
+    double temp_double;
+    std::cin >> temp_double;
     if(std::cin.fail()){
       badInput = true;
@@ -46,4 +47,5 @@
       std::cout << "Input was not a number!" << std::endl;
     }
+    tmp.set(temp_double);
   }while(badInput);
   std::cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
Index: src/UIElements/TextUI/Query/DoublesTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/DoublesTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/DoublesTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::DoublesTextQuery::DoublesTextQuery(std::string title, std::string _description) :
-    Dialog::DoublesQuery(title,_description)
+TextDialog::DoublesTextQuery::DoublesTextQuery(Parameter<std::vector<double> > &param, std::string title, std::string _description) :
+    Dialog::DoublesQuery(param, title,_description)
 {}
 
@@ -40,9 +40,10 @@
   // dissect by " "
   std::string::iterator olditer = line.begin();
+  std::vector<double> temp_doubles;
   for(std::string::iterator iter = line.begin(); iter != line.end(); ++iter) {
     if (*iter == ' ') {
       std::istringstream stream(std::string(iter, olditer));
       stream >> temp;
-      tmp.push_back(temp);
+      temp_doubles.push_back(temp);
       olditer = iter;
     }
@@ -51,6 +52,7 @@
     std::istringstream stream(std::string(olditer, line.end()));
     stream >> temp;
-    tmp.push_back(temp);
+    temp_doubles.push_back(temp);
   }
+  tmp.set(temp_doubles);
 
   return true;
Index: src/UIElements/TextUI/Query/ElementTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/ElementTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/ElementTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::ElementTextQuery::ElementTextQuery(std::string title, std::string _description) :
-    Dialog::ElementQuery(title,_description)
+TextDialog::ElementTextQuery::ElementTextQuery(Parameter<const element *> &param, std::string title, std::string _description) :
+    Dialog::ElementQuery(param, title,_description)
 {}
 
Index: src/UIElements/TextUI/Query/ElementsTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/ElementsTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/ElementsTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -35,6 +35,6 @@
 
 
-TextDialog::ElementsTextQuery::ElementsTextQuery(std::string title, std::string _description) :
-    Dialog::ElementsQuery(title,_description)
+TextDialog::ElementsTextQuery::ElementsTextQuery(Parameter<std::vector<const element *> > &param, std::string title, std::string _description) :
+    Dialog::ElementsQuery(param, title,_description)
 {}
 
@@ -50,4 +50,5 @@
   // dissect by " "
   std::string::iterator olditer = line.begin();
+  std::vector<const element *> temp_elements;
   for(std::string::iterator iter = line.begin(); iter != line.end(); ++iter) {
     if (*iter == ' ') {
@@ -64,5 +65,5 @@
         break;
       }
-      tmp.push_back(temp);
+      temp_elements.push_back(temp);
       olditer = iter;
     }
@@ -79,7 +80,8 @@
     if(!temp && Z!=-1) {
       std::cout << "Invalid Element" << shorthand << std::endl;
-      tmp.push_back(temp);
+      temp_elements.push_back(temp);
     }
   }
+  tmp.set(temp_elements);
 
   return (Z!=-1);
Index: src/UIElements/TextUI/Query/FileTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/FileTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/FileTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::FileTextQuery::FileTextQuery(std::string title, std::string _description) :
-    Dialog::FileQuery(title,_description)
+TextDialog::FileTextQuery::FileTextQuery(Parameter<boost::filesystem::path> &param, std::string title, std::string _description) :
+    Dialog::FileQuery(param, title,_description)
 {}
 
@@ -53,5 +53,5 @@
   } while(badInput);
   std::cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
-  tmp = tempstring;
+  tmp.set(tempstring);
   return true;
 }
Index: src/UIElements/TextUI/Query/IntTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/IntTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/IntTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::IntTextQuery::IntTextQuery(std::string title, std::string _description) :
-    Dialog::IntQuery(title,_description)
+TextDialog::IntTextQuery::IntTextQuery(Parameter<int> &param, std::string title, std::string _description) :
+    Dialog::IntQuery(param, title,_description)
 {}
 
@@ -39,5 +39,7 @@
     badInput = false;
     std::cout << getDescription() << ": ";
-    std::cin >> tmp;
+    int temp_int;
+    std::cin >> temp_int;
+    tmp.set(temp_int);
     if(std::cin.fail()){
       badInput=true;
Index: src/UIElements/TextUI/Query/IntsTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/IntsTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/IntsTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::IntsTextQuery::IntsTextQuery(std::string title, std::string _description) :
-    Dialog::IntsQuery(title,_description)
+TextDialog::IntsTextQuery::IntsTextQuery(Parameter<std::vector<int> > &param, std::string title, std::string _description) :
+    Dialog::IntsQuery(param, title,_description)
 {}
 
@@ -39,4 +39,5 @@
   getline(std::cin,line);
   // dissect by " "
+  std::vector<int> temp_int;
   std::string::iterator olditer = line.begin();
   for(std::string::iterator iter = line.begin(); iter != line.end(); ++iter) {
@@ -44,5 +45,5 @@
       std::istringstream stream(std::string(iter, olditer));
       stream >> temp;
-      tmp.push_back(temp);
+      temp_int.push_back(temp);
       olditer = iter;
     }
@@ -51,6 +52,7 @@
     std::istringstream stream(std::string(olditer, line.end()));
     stream >> temp;
-    tmp.push_back(temp);
+    temp_int.push_back(temp);
   }
+  tmp.set(temp_int);
 
   return true;
Index: src/UIElements/TextUI/Query/MoleculeTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/MoleculeTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/MoleculeTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::MoleculeTextQuery::MoleculeTextQuery(std::string title, std::string _description) :
-    Dialog::MoleculeQuery(title,_description)
+TextDialog::MoleculeTextQuery::MoleculeTextQuery(Parameter<const molecule *> &param, std::string title, std::string _description) :
+    Dialog::MoleculeQuery(param, title,_description)
 {}
 
@@ -52,9 +52,10 @@
     }
 
-    tmp = World::getInstance().getMolecule(MoleculeById(idxOfMol));
-    if(!tmp && idxOfMol!=-1){
+    const molecule *temp_mol = World::getInstance().getMolecule(MoleculeById(idxOfMol));
+    if(!temp_mol && idxOfMol!=-1){
       std::cout << "Invalid Molecule Index" << std::endl;
       badInput = true;
     }
+    tmp.set(temp_mol);
 
   } while(badInput);
Index: src/UIElements/TextUI/Query/MoleculesTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/MoleculesTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/MoleculesTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::MoleculesTextQuery::MoleculesTextQuery(std::string title, std::string _description) :
-    Dialog::MoleculesQuery(title,_description)
+TextDialog::MoleculesTextQuery::MoleculesTextQuery(Parameter<std::vector<const molecule *> > &param, std::string title, std::string _description) :
+    Dialog::MoleculesQuery(param, title,_description)
 {}
 
@@ -43,4 +43,5 @@
   getline(std::cin,line);
   // dissect by " "
+  std::vector<const molecule *> temp_mols;
   std::string::iterator olditer = line.begin();
   for(std::string::iterator iter = line.begin(); iter != line.end(); ++iter) {
@@ -53,5 +54,5 @@
         break;
       }
-      tmp.push_back(temp);
+      temp_mols.push_back(temp);
       olditer = iter;
     }
@@ -63,7 +64,8 @@
     if(!temp && idxOfMol!=-1){
       std::cout << "Invalid Molecule Index" << idxOfMol << std::endl;
-      tmp.push_back(temp);
+      temp_mols.push_back(temp);
     }
   }
+  tmp.set(temp_mols);
 
   return (idxOfMol!=-1);
Index: src/UIElements/TextUI/Query/RandomNumberDistribution_ParametersTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/RandomNumberDistribution_ParametersTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/RandomNumberDistribution_ParametersTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -30,6 +30,6 @@
 #include "RandomNumbers/RandomNumberDistribution_Parameters.hpp"
 
-TextDialog::RandomNumberDistribution_ParametersTextQuery::RandomNumberDistribution_ParametersTextQuery(std::string title, std::string _description) :
-    Dialog::RandomNumberDistribution_ParametersQuery(title,_description)
+TextDialog::RandomNumberDistribution_ParametersTextQuery::RandomNumberDistribution_ParametersTextQuery(Parameter<RandomNumberDistribution_Parameters> &param, std::string title, std::string _description) :
+    Dialog::RandomNumberDistribution_ParametersQuery(param, title,_description)
 {}
 
@@ -43,5 +43,7 @@
     std::cout << "Please enter parameters as follows: 'p=0.5;'";
     std::cout << "Empty line terminates." << std::endl;
-    std::cin >> tmp;
+    RandomNumberDistribution_Parameters temp_params;
+    std::cin >> temp_params;
+    tmp.set(temp_params);
     if(std::cin.fail()){
       badInput = true;
Index: src/UIElements/TextUI/Query/StringTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/StringTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/StringTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::StringTextQuery::StringTextQuery(std::string title, std::string _description) :
-    Dialog::StringQuery(title,_description)
+TextDialog::StringTextQuery::StringTextQuery(Parameter<std::string> &param, std::string title, std::string _description) :
+    Dialog::StringQuery(param, title,_description)
 {}
 
@@ -36,5 +36,7 @@
 bool TextDialog::StringTextQuery::handle() {
   std::cout << getDescription() << ": ";
-  getline(std::cin,tmp);
+  std::string temp_string;
+  getline(std::cin,temp_string);
+  tmp.set(temp_string);
   return true;
 }
Index: src/UIElements/TextUI/Query/StringsTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/StringsTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/StringsTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::StringsTextQuery::StringsTextQuery(std::string title, std::string _description) :
-    Dialog::StringsQuery(title,_description)
+TextDialog::StringsTextQuery::StringsTextQuery(Parameter<std::vector<std::string> > &param, std::string title, std::string _description) :
+    Dialog::StringsQuery(param, title,_description)
 {}
 
@@ -38,13 +38,15 @@
   getline(std::cin,temp);
   // dissect by " "
+  std::vector<std::string> temp_strings;
   std::string::iterator olditer = temp.begin();
   for(std::string::iterator iter = temp.begin(); iter != temp.end(); ++iter) {
     if (*iter == ' ') {
-      tmp.push_back(std::string(iter, olditer));
+      temp_strings.push_back(std::string(iter, olditer));
       olditer = iter;
     }
   }
   if (olditer != temp.begin())  // insert last part also
-    tmp.push_back(std::string(olditer, temp.end()));
+    temp_strings.push_back(std::string(olditer, temp.end()));
+  tmp.set(temp_strings);
 
   return true;
Index: src/UIElements/TextUI/Query/TextQuery.hpp
===================================================================
--- src/UIElements/TextUI/Query/TextQuery.hpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/TextQuery.hpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -19,5 +19,5 @@
 class TextDialog::AtomTextQuery : public Dialog::AtomQuery {
 public:
-  AtomTextQuery(std::string title, std::string _description = NULL);
+  AtomTextQuery(Parameter<const atom *> &, std::string title, std::string _description = NULL);
   virtual ~AtomTextQuery();
   virtual bool handle();
@@ -26,5 +26,5 @@
 class TextDialog::AtomsTextQuery : public Dialog::AtomsQuery {
 public:
-  AtomsTextQuery(std::string title, std::string _description = NULL);
+  AtomsTextQuery(Parameter<std::vector<const atom *> > &, std::string title, std::string _description = NULL);
   virtual ~AtomsTextQuery();
   virtual bool handle();
@@ -33,5 +33,5 @@
 class TextDialog::BooleanTextQuery : public Dialog::BooleanQuery {
 public:
-  BooleanTextQuery(std::string title, std::string _description = NULL);
+  BooleanTextQuery(Parameter<bool> &, std::string title, std::string _description = NULL);
   virtual ~BooleanTextQuery();
   virtual bool handle();
@@ -40,5 +40,5 @@
 class TextDialog::BoxTextQuery : public Dialog::BoxQuery {
 public:
-  BoxTextQuery(std::string title, std::string _description = NULL);
+  BoxTextQuery(Parameter<Box> &, std::string title, std::string _description = NULL);
   virtual ~BoxTextQuery();
   virtual bool handle();
@@ -47,5 +47,5 @@
 class TextDialog::DoubleTextQuery : public Dialog::DoubleQuery {
 public:
-  DoubleTextQuery(std::string title, std::string _description = NULL);
+  DoubleTextQuery(Parameter<double> &, std::string title, std::string _description = NULL);
   virtual ~DoubleTextQuery();
   virtual bool handle();
@@ -54,5 +54,5 @@
 class TextDialog::DoublesTextQuery : public Dialog::DoublesQuery {
 public:
-  DoublesTextQuery(std::string title, std::string _description = NULL);
+  DoublesTextQuery(Parameter<std::vector<double> > &, std::string title, std::string _description = NULL);
   virtual ~DoublesTextQuery();
   virtual bool handle();
@@ -61,5 +61,5 @@
 class TextDialog::ElementTextQuery : public Dialog::ElementQuery {
 public:
-  ElementTextQuery(std::string title, std::string _description = NULL);
+  ElementTextQuery(Parameter<const element *> &, std::string title, std::string _description = NULL);
   virtual ~ElementTextQuery();
   virtual bool handle();
@@ -68,5 +68,5 @@
 class TextDialog::ElementsTextQuery : public Dialog::ElementsQuery {
 public:
-  ElementsTextQuery(std::string title, std::string _description = NULL);
+  ElementsTextQuery(Parameter<std::vector<const element *> > &, std::string title, std::string _description = NULL);
   virtual ~ElementsTextQuery();
   virtual bool handle();
@@ -82,5 +82,5 @@
 class TextDialog::FileTextQuery : public Dialog::FileQuery {
 public:
-  FileTextQuery(std::string title, std::string _description = NULL);
+  FileTextQuery(Parameter<boost::filesystem::path> &, std::string title, std::string _description = NULL);
   virtual ~FileTextQuery();
   virtual bool handle();
@@ -89,5 +89,5 @@
 class TextDialog::IntTextQuery : public Dialog::IntQuery {
 public:
-  IntTextQuery(std::string title, std::string _description = NULL);
+  IntTextQuery(Parameter<int> &, std::string title, std::string _description = NULL);
   virtual ~IntTextQuery();
   virtual bool handle();
@@ -96,5 +96,5 @@
 class TextDialog::IntsTextQuery : public Dialog::IntsQuery {
 public:
-  IntsTextQuery(std::string title, std::string _description = NULL);
+  IntsTextQuery(Parameter<std::vector<int> > &, std::string title, std::string _description = NULL);
   virtual ~IntsTextQuery();
   virtual bool handle();
@@ -103,5 +103,5 @@
 class TextDialog::MoleculeTextQuery : public Dialog::MoleculeQuery {
 public:
-  MoleculeTextQuery(std::string title, std::string _description = NULL);
+  MoleculeTextQuery(Parameter<const molecule *> &, std::string title, std::string _description = NULL);
   virtual ~MoleculeTextQuery();
   virtual bool handle();
@@ -110,5 +110,5 @@
 class TextDialog::MoleculesTextQuery : public Dialog::MoleculesQuery {
 public:
-  MoleculesTextQuery(std::string title, std::string _description = NULL);
+  MoleculesTextQuery(Parameter<std::vector<const molecule *> > &, std::string title, std::string _description = NULL);
   virtual ~MoleculesTextQuery();
   virtual bool handle();
@@ -117,5 +117,5 @@
 class TextDialog::StringTextQuery : public Dialog::StringQuery {
 public:
-  StringTextQuery(std::string title, std::string _description = NULL);
+  StringTextQuery(Parameter<std::string> &, std::string title, std::string _description = NULL);
   virtual ~StringTextQuery();
   virtual bool handle();
@@ -124,5 +124,5 @@
 class TextDialog::StringsTextQuery : public Dialog::StringsQuery {
 public:
-  StringsTextQuery(std::string title, std::string _description = NULL);
+  StringsTextQuery(Parameter<std::vector<std::string> > &, std::string title, std::string _description = NULL);
   virtual ~StringsTextQuery();
   virtual bool handle();
@@ -131,5 +131,5 @@
 class TextDialog::UnsignedIntTextQuery : public Dialog::UnsignedIntQuery {
 public:
-  UnsignedIntTextQuery(std::string title, std::string _description = NULL);
+  UnsignedIntTextQuery(Parameter<unsigned int> &, std::string title, std::string _description = NULL);
   virtual ~UnsignedIntTextQuery();
   virtual bool handle();
@@ -138,5 +138,5 @@
 class TextDialog::UnsignedIntsTextQuery : public Dialog::UnsignedIntsQuery {
 public:
-  UnsignedIntsTextQuery(std::string title, std::string _description = NULL);
+  UnsignedIntsTextQuery(Parameter<std::vector<unsigned int> > &, std::string title, std::string _description = NULL);
   virtual ~UnsignedIntsTextQuery();
   virtual bool handle();
@@ -145,5 +145,5 @@
 class TextDialog::VectorTextQuery : public Dialog::VectorQuery {
 public:
-  VectorTextQuery(std::string title,bool _check, std::string _description = NULL);
+  VectorTextQuery(Parameter<Vector> &, std::string title,bool _check, std::string _description = NULL);
   virtual ~VectorTextQuery();
   virtual bool handle();
@@ -152,5 +152,5 @@
 class TextDialog::VectorsTextQuery : public Dialog::VectorsQuery {
 public:
-  VectorsTextQuery(std::string title,bool _check, std::string _description = NULL);
+  VectorsTextQuery(Parameter<std::vector<Vector> > &, std::string title,bool _check, std::string _description = NULL);
   virtual ~VectorsTextQuery();
   virtual bool handle();
@@ -159,5 +159,5 @@
 class TextDialog::RandomNumberDistribution_ParametersTextQuery : public Dialog::RandomNumberDistribution_ParametersQuery {
 public:
-  RandomNumberDistribution_ParametersTextQuery(std::string title, std::string _description = NULL);
+  RandomNumberDistribution_ParametersTextQuery(Parameter<RandomNumberDistribution_Parameters> &, std::string title, std::string _description = NULL);
   virtual ~RandomNumberDistribution_ParametersTextQuery();
   virtual bool handle();
Index: src/UIElements/TextUI/Query/UnsignedIntTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/UnsignedIntTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/UnsignedIntTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::UnsignedIntTextQuery::UnsignedIntTextQuery(std::string title, std::string _description) :
-    Dialog::UnsignedIntQuery(title,_description)
+TextDialog::UnsignedIntTextQuery::UnsignedIntTextQuery(Parameter<unsigned int> &param, std::string title, std::string _description) :
+    Dialog::UnsignedIntQuery(param, title,_description)
 {}
 
@@ -39,5 +39,6 @@
     badInput = false;
     std::cout << getDescription() << ": ";
-    std::cin >> tmp;
+    unsigned int temp_uint;
+    std::cin >> temp_uint;
     if(std::cin.fail()){
       badInput=true;
@@ -46,4 +47,5 @@
       std::cout << "Input was not a number!" << std::endl;
     }
+    tmp.set(temp_uint);
   } while(badInput);
   // clear the input buffer of anything still in the line
Index: src/UIElements/TextUI/Query/UnsignedIntsTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/UnsignedIntsTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/UnsignedIntsTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -28,6 +28,6 @@
 
 
-TextDialog::UnsignedIntsTextQuery::UnsignedIntsTextQuery(std::string title, std::string _description) :
-    Dialog::UnsignedIntsQuery(title,_description)
+TextDialog::UnsignedIntsTextQuery::UnsignedIntsTextQuery(Parameter<std::vector<unsigned int> > &param, std::string title, std::string _description) :
+    Dialog::UnsignedIntsQuery(param, title,_description)
 {}
 
@@ -39,4 +39,5 @@
   getline(std::cin,line);
   // dissect by " "
+  std::vector<unsigned int> temp_uints;
   std::string::iterator olditer = line.begin();
   for(std::string::iterator iter = line.begin(); iter != line.end(); ++iter) {
@@ -44,5 +45,5 @@
       std::istringstream stream(std::string(iter, olditer));
       stream >> temp;
-      tmp.push_back(temp);
+      temp_uints.push_back(temp);
       olditer = iter;
     }
@@ -51,6 +52,7 @@
     std::istringstream stream(std::string(olditer, line.end()));
     stream >> temp;
-    tmp.push_back(temp);
+    temp_uints.push_back(temp);
   }
+  tmp.set(temp_uints);
 
   return true;
Index: src/UIElements/TextUI/Query/VectorTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/VectorTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/VectorTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::VectorTextQuery::VectorTextQuery(std::string title, bool _check, std::string _description) :
-    Dialog::VectorQuery(title,_check,_description)
+TextDialog::VectorTextQuery::VectorTextQuery(Parameter<Vector> &param, std::string title, bool _check, std::string _description) :
+    Dialog::VectorQuery(param, title,_check,_description)
 {}
 
@@ -48,4 +48,6 @@
   getline(std::cin,line);
 
+  Vector temp_vector;
+
   // dissect by ","
   double coord = 0.;
@@ -56,5 +58,5 @@
       std::istringstream stream(std::string(iter, olditer));
       stream >> coord;
-      tmp[counter++] = coord;
+      temp_vector[counter++] = coord;
       olditer = iter;
     }
@@ -63,9 +65,10 @@
     std::istringstream stream(std::string(olditer, line.end()));
     stream >> coord;
-    tmp[counter++] = coord;
+    temp_vector[counter++] = coord;
   }
+  tmp.set(temp_vector);
 
   // check vector
-  return World::getInstance().getDomain().isValid(tmp);
+  return World::getInstance().getDomain().isValid(temp_vector);
 }
 
Index: src/UIElements/TextUI/Query/VectorsTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/VectorsTextQuery.cpp	(revision 955b91eef584d31f8d9958b67d1ea39b84eb1fb7)
+++ src/UIElements/TextUI/Query/VectorsTextQuery.cpp	(revision f10b0c73d4fb0ce5aaebc2bd886b4e6fad639dd0)
@@ -31,6 +31,6 @@
 
 
-TextDialog::VectorsTextQuery::VectorsTextQuery(std::string title, bool _check, std::string _description) :
-    Dialog::VectorsQuery(title,_check,_description)
+TextDialog::VectorsTextQuery::VectorsTextQuery(Parameter<std::vector<Vector> > &param, std::string title, bool _check, std::string _description) :
+    Dialog::VectorsQuery(param, title,_check,_description)
 {}
 
@@ -50,4 +50,5 @@
   // dissect by ","
   double coord = 0.;
+  std::vector<Vector> temp_vectors;
   std::string::iterator olditerspace = line.begin();
   std::string::iterator olditercomma = line.begin();
@@ -72,8 +73,9 @@
       }
       if (World::getInstance().getDomain().isValid(temp))
-        tmp.push_back(temp);
+        temp_vectors.push_back(temp);
       olditerspace = vectoriter;
     }
   }
+  tmp.set(temp_vectors);
 
   return true;
