Index: src/UIElements/Qt4/Pipe/AtomQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/AtomQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/AtomQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,5 +28,5 @@
 
 
-AtomQtQueryPipe::AtomQtQueryPipe(const atom **_content, QtDialog *_dialog, QComboBox *_theBox) :
+AtomQtQueryPipe::AtomQtQueryPipe(Parameter<const atom *> &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
@@ -40,5 +40,5 @@
   QVariant data = theBox->itemData(newIndex);
   int idx = data.toInt();
-  (*content) = World::getInstance().getAtom(AtomById(idx));
+  content.set(World::getInstance().getAtom(AtomById(idx)));
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/AtomQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/AtomQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/AtomQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -25,5 +26,5 @@
   Q_OBJECT
 public:
-  AtomQtQueryPipe(const atom **_content, QtDialog *_dialog, QComboBox *_theBox);
+  AtomQtQueryPipe(Parameter<const atom *> &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~AtomQtQueryPipe();
 
@@ -32,5 +33,5 @@
 
 private:
-  const atom **content;
+  Parameter<const atom *> &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/Pipe/AtomsQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/AtomsQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/AtomsQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,5 +30,5 @@
 
 
-AtomsQtQueryPipe::AtomsQtQueryPipe(std::vector<const atom *>*_content, QtDialog *_dialog, QListWidget *_theList) :
+AtomsQtQueryPipe::AtomsQtQueryPipe(Parameter<std::vector<const atom *> > &_content, QtDialog *_dialog, QListWidget *_theList) :
   content(_content),
   dialog(_dialog),
@@ -41,7 +41,8 @@
 void AtomsQtQueryPipe::update() {
   // clear target and put all atoms therein
-  (*content).clear();
+  std::vector<const atom *> temp_atoms;
   for (std::set<const atom *>::iterator iter = currentList.begin(); iter != currentList.end(); ++iter)
-    (*content).push_back(*iter);
+    temp_atoms.push_back(*iter);
+  content.set(temp_atoms);
   dialog->update();
 }
@@ -53,5 +54,4 @@
     atom *Walker = World::getInstance().getAtom(AtomById(index));
     if (Walker) {
-      (*content).push_back(Walker);
       currentList.insert(Walker);
       if (lookup.find(index) != lookup.end())
Index: src/UIElements/Qt4/Pipe/AtomsQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/AtomsQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/AtomsQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -29,5 +30,5 @@
   Q_OBJECT
 public:
-  AtomsQtQueryPipe(std::vector<const atom *>*_content, QtDialog *_dialog, QListWidget *_theList);
+  AtomsQtQueryPipe(Parameter<std::vector<const atom *> > &_content, QtDialog *_dialog, QListWidget *_theList);
   virtual ~AtomsQtQueryPipe();
 
@@ -38,5 +39,5 @@
 
 private:
-  std::vector<const atom *>*content;
+  Parameter<std::vector<const atom *> > &content;
   std::map<int, const atom *> lookup;
   std::set<const atom *> currentList;
Index: src/UIElements/Qt4/Pipe/BooleanQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/BooleanQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/BooleanQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -25,5 +25,5 @@
 #include "CodePatterns/MemDebug.hpp"
 
-BooleanQtQueryPipe::BooleanQtQueryPipe(bool *_content, QtDialog *_dialog, QCheckBox *_booleanCheckBox) :
+BooleanQtQueryPipe::BooleanQtQueryPipe(Parameter<bool> &_content, QtDialog *_dialog, QCheckBox *_booleanCheckBox) :
   content(_content),
   dialog(_dialog),
@@ -35,5 +35,5 @@
 
 void BooleanQtQueryPipe::update(int state) {
-  (*content) = (state == Qt::Checked);
+  content.set(state == Qt::Checked);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/BooleanQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/BooleanQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/BooleanQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -23,5 +24,5 @@
   Q_OBJECT
 public:
-  BooleanQtQueryPipe(bool *_content, QtDialog *_dialog, QCheckBox *_booleanCheckBox);
+  BooleanQtQueryPipe(Parameter<bool> &_content, QtDialog *_dialog, QCheckBox *_booleanCheckBox);
   virtual ~BooleanQtQueryPipe();
 
@@ -30,5 +31,5 @@
 
 private:
-  bool *content;
+  Parameter<bool> &content;
   QtDialog *dialog;
   QCheckBox *booleanCheckBox;
Index: src/UIElements/Qt4/Pipe/BoxQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/BoxQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ 	(revision )
@@ -1,51 +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.
- */
-
-/*
- * BoxQtQueryPipe.cpp
- *
- *  Created on: Oct 25, 2010
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "UIElements/Qt4/Pipe/BoxQtQueryPipe.hpp"
-#include "UIElements/Qt4/QtDialog.hpp"
-
-#include <Qt/qcombobox.h>
-#include <Qt/qtablewidget.h>
-
-#include "CodePatterns/MemDebug.hpp"
-#include "LinearAlgebra/RealSpaceMatrix.hpp"
-#include "Box.hpp"
-
-BoxQtQueryPipe::BoxQtQueryPipe(Box &_content, QtDialog *_dialog, QTableWidget *_inputTable) :
-  content(_content),
-  dialog(_dialog),
-  inputTable(_inputTable)
-{
-  tmpM = new RealSpaceMatrix();
-  tmpM->setIdentity();
-}
-
-BoxQtQueryPipe::~BoxQtQueryPipe()
-{
-  delete tmpM;
-}
-
-void BoxQtQueryPipe::update(int row, int column)
-{
-  tmpM->at(row, column) = inputTable->item(row, column)->text().toDouble();
-  content.setM(*tmpM);
-  dialog->update();
-}
-
-
Index: src/UIElements/Qt4/Pipe/BoxQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/BoxQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ 	(revision )
@@ -1,44 +1,0 @@
-/*
- * BoxQtQueryPipe.hpp
- *
- *  Created on: Nov 8, 2010
- *      Author: heber
- */
-
-#ifndef BOXQTQUERYPIPE_HPP_
-#define BOXQTQUERYPIPE_HPP_
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-
-#include <Qt/qwidget.h>
-
-class QTableWidget;
-
-class Box;
-class QtDialog;
-class RealSpaceMatrix;
-
-
-class BoxQtQueryPipe : public QWidget {
-  Q_OBJECT
-public:
-  BoxQtQueryPipe(Box &_content, QtDialog *_dialog, QTableWidget *_inputTable);
-  virtual ~BoxQtQueryPipe();
-
-public slots:
-  void update(int,int);
-
-private:
-  Box &content;
-  QtDialog *dialog;
-  QTableWidget *inputTable;
-
-  RealSpaceMatrix *tmpM;
-};
-
-
-#endif /* BOXQTQUERYPIPE_HPP_ */
Index: src/UIElements/Qt4/Pipe/DoubleQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/DoubleQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/DoubleQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -23,5 +23,5 @@
 #include "CodePatterns/MemDebug.hpp"
 
-DoubleQtQueryPipe::DoubleQtQueryPipe(double *_content, QtDialog *_dialog) :
+DoubleQtQueryPipe::DoubleQtQueryPipe(Parameter<double> &_content, QtDialog *_dialog) :
   content(_content),
   dialog(_dialog)
@@ -32,5 +32,5 @@
 
 void DoubleQtQueryPipe::update(double newDbl) {
-  (*content) = newDbl;
+  content.set(newDbl);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/DoubleQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/DoubleQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/DoubleQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -22,5 +23,5 @@
   Q_OBJECT
 public:
-  DoubleQtQueryPipe(double *_content, QtDialog *_dialog);
+  DoubleQtQueryPipe(Parameter<double> &_content, QtDialog *_dialog);
   virtual ~DoubleQtQueryPipe();
 
@@ -29,5 +30,5 @@
 
 private:
-  double *content;
+  Parameter<double> &content;
   QtDialog *dialog;
 
Index: src/UIElements/Qt4/Pipe/ElementQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/ElementQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/ElementQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,5 +29,5 @@
 
 
-ElementQtQueryPipe::ElementQtQueryPipe(const element **_content, QtDialog *_dialog, QComboBox *_theBox) :
+ElementQtQueryPipe::ElementQtQueryPipe(Parameter<const element *> &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
@@ -41,5 +41,5 @@
   QVariant data = theBox->itemData(newIndex);
   int idx = data.toInt();
-  *content = World::getInstance().getPeriode()->FindElement(idx);
+  content.set(World::getInstance().getPeriode()->FindElement(idx));
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/ElementQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/ElementQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/ElementQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -25,5 +26,5 @@
   Q_OBJECT
 public:
-  ElementQtQueryPipe(const element **_content, QtDialog *_dialog, QComboBox *_theBox);
+  ElementQtQueryPipe(Parameter<const element *> &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~ElementQtQueryPipe();
 
@@ -32,5 +33,5 @@
 
 private:
-  const element **content;
+  Parameter<const element *> &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,5 +31,5 @@
 
 
-ElementsQtQueryPipe::ElementsQtQueryPipe(std::vector<const element *>*_content, QtDialog *_dialog, QComboBox *_theBox) :
+ElementsQtQueryPipe::ElementsQtQueryPipe(Parameter<std::vector<const element *> > &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
@@ -44,6 +44,8 @@
   int idx = data.toInt();
   const element *elemental = World::getInstance().getPeriode()->FindElement(idx);
+  std::vector<const element *> temp_elements;
   if(elemental)
-    (*content).push_back(elemental);
+    temp_elements.push_back(elemental);
+  content.set(temp_elements);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/ElementsQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -28,5 +29,5 @@
   Q_OBJECT
 public:
-  ElementsQtQueryPipe(std::vector<const element *>*_content, QtDialog *_dialog, QComboBox *_theBox);
+  ElementsQtQueryPipe(Parameter<std::vector<const element *> > &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~ElementsQtQueryPipe();
 
@@ -35,5 +36,5 @@
 
 private:
-  std::vector<const element *>*content;
+  Parameter<std::vector<const element *> > &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/Pipe/FileQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/FileQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/FileQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,5 +31,5 @@
 #include "UIElements/Qt4/QtDialog.hpp"
 
-FileQtQueryPipe::FileQtQueryPipe(boost::filesystem::path *_content, QtDialog *_dialog, QLineEdit *_filenameLineEdit, QPushButton *_filedialogButton) :
+FileQtQueryPipe::FileQtQueryPipe(Parameter<boost::filesystem::path> &_content, QtDialog *_dialog, QLineEdit *_filenameLineEdit, QPushButton *_filedialogButton) :
   content(_content),
   dialog(_dialog),
@@ -49,6 +49,6 @@
   QStringList ListOfFilenames = theFileDialog->selectedFiles();
   std::cout << "Selected File is " << ListOfFilenames.at(0).toStdString() << std::endl;
-  (*content) = ListOfFilenames.at(0).toStdString();
-  filenameLineEdit->setText(QString::fromStdString((*content).string()));
+  content.set(ListOfFilenames.at(0).toStdString());
+  filenameLineEdit->setText(QString::fromStdString(content.get().string()));
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/FileQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/FileQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/FileQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -27,5 +28,5 @@
   Q_OBJECT
 public:
-  FileQtQueryPipe(boost::filesystem::path *_content, QtDialog *_dialog, QLineEdit *_filenameLineEdit, QPushButton *_filedialogButton);
+  FileQtQueryPipe(Parameter<boost::filesystem::path> &_content, QtDialog *_dialog, QLineEdit *_filenameLineEdit, QPushButton *_filedialogButton);
   virtual ~FileQtQueryPipe();
 
@@ -35,5 +36,5 @@
 
 private:
-  boost::filesystem::path *content;
+  Parameter<boost::filesystem::path> &content;
   QtDialog *dialog;
   QLineEdit *filenameLineEdit;
Index: src/UIElements/Qt4/Pipe/IntQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/IntQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/IntQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -24,5 +24,5 @@
 
 
-IntQtQueryPipe::IntQtQueryPipe(int *_content, QtDialog *_dialog) :
+IntQtQueryPipe::IntQtQueryPipe(Parameter<int> &_content, QtDialog *_dialog) :
   content(_content),
   dialog(_dialog)
@@ -33,5 +33,5 @@
 
 void IntQtQueryPipe::update(int newInt) {
-  (*content) = newInt;
+  content.set(newInt);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/IntQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/IntQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/IntQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -22,5 +23,5 @@
   Q_OBJECT
 public:
-  IntQtQueryPipe(int *_content, QtDialog *_dialog);
+  IntQtQueryPipe(Parameter<int> &_content, QtDialog *_dialog);
   virtual ~IntQtQueryPipe();
 
@@ -29,5 +30,5 @@
 
 private:
-  int *content;
+  Parameter<int> &content;
   QtDialog *dialog;
 
Index: src/UIElements/Qt4/Pipe/MoleculeQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/MoleculeQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/MoleculeQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,5 +29,5 @@
 
 
-MoleculeQtQueryPipe::MoleculeQtQueryPipe(const molecule **_content, QtDialog *_dialog, QComboBox *_theBox) :
+MoleculeQtQueryPipe::MoleculeQtQueryPipe(Parameter<const molecule *> &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
@@ -41,5 +41,5 @@
   QVariant data = theBox->itemData(newIndex);
   int idx = data.toInt();
-  (*content) = World::getInstance().getMolecule(MoleculeById(idx));
+  content.set(World::getInstance().getMolecule(MoleculeById(idx)));
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/MoleculeQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/MoleculeQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/MoleculeQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -25,5 +26,5 @@
   Q_OBJECT
 public:
-  MoleculeQtQueryPipe(const molecule **_content, QtDialog *_dialog, QComboBox *_theBox);
+  MoleculeQtQueryPipe(Parameter<const molecule *> &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~MoleculeQtQueryPipe();
 
@@ -32,5 +33,5 @@
 
 private:
-  const molecule **content;
+  Parameter<const molecule *> &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/Pipe/MoleculesQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/MoleculesQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/MoleculesQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,5 +31,5 @@
 
 
-MoleculesQtQueryPipe::MoleculesQtQueryPipe(std::vector<const molecule *>*_content, QtDialog *_dialog, QComboBox *_theBox) :
+MoleculesQtQueryPipe::MoleculesQtQueryPipe(Parameter<std::vector<const molecule *> > &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
@@ -44,6 +44,8 @@
   int idx = data.toInt();
   molecule *mol = World::getInstance().getMolecule(MoleculeById(idx));
+  std::vector<const molecule *> temp_mols;
   if (mol)
-    (*content).push_back(mol);
+    temp_mols.push_back(mol);
+  content.set(temp_mols);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/MoleculesQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/MoleculesQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/MoleculesQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -27,5 +28,5 @@
   Q_OBJECT
 public:
-  MoleculesQtQueryPipe(std::vector<const molecule *>*_content, QtDialog *_dialog, QComboBox *_theBox);
+  MoleculesQtQueryPipe(Parameter<std::vector<const molecule *> > &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~MoleculesQtQueryPipe();
 
@@ -34,5 +35,5 @@
 
 private:
-  std::vector<const molecule *>*content;
+  Parameter<std::vector<const molecule *> > &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/Pipe/QtQueryListPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/QtQueryListPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/QtQueryListPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include "QtQueryPipe.hpp"
 
@@ -23,5 +24,5 @@
 
 
-template<typename T> QtQueryListPipe<T>::QtQueryListPipe(std::vector<T> *_content, QtDialog *_dialog, QLineEdit *_inputBox, QListWidget *_inputList, QPushButton *_AddButton, QPushButton *_RemoveButton) :
+template<typename T> QtQueryListPipe<T>::QtQueryListPipe(Parameter<std::vector<T> > &_content, QtDialog *_dialog, QLineEdit *_inputBox, QListWidget *_inputList, QPushButton *_AddButton, QPushButton *_RemoveButton) :
   content(_content),
   dialog(_dialog),
Index: src/UIElements/Qt4/Pipe/QtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/QtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/QtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -19,4 +19,5 @@
 // since MOC doesn't like nested classes
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -33,5 +34,5 @@
 template<typename T> class QtQueryListPipe : public QWidget {
   public:
-    QtQueryListPipe(std::vector<T> *_content, QtDialog *_dialog, QLineEdit *_inputBox, QListWidget *_inputList, QPushButton *_AddButton, QPushButton *_RemoveButton);
+    QtQueryListPipe(Parameter<std::vector<T> > &_content, QtDialog *_dialog, QLineEdit *_inputBox, QListWidget *_inputList, QPushButton *_AddButton, QPushButton *_RemoveButton);
     virtual ~QtQueryListPipe();
     void AddInteger();
@@ -44,5 +45,5 @@
     void RemoveRow(int row);
 
-    std::vector<T> *content;
+    Parameter<std::vector<T> > &content;
     QtDialog *dialog;
     QLineEdit *inputBox;
Index: src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,5 +30,5 @@
 class RandomNumberDistribution_Parameters;
 
-RandomNumberDistribution_ParametersQtQueryPipe::RandomNumberDistribution_ParametersQtQueryPipe(const RandomNumberDistribution_Parameters *_content, QtDialog *_dialog, QTextEdit *_theBox) :
+RandomNumberDistribution_ParametersQtQueryPipe::RandomNumberDistribution_ParametersQtQueryPipe(Parameter<RandomNumberDistribution_Parameters> &_content, QtDialog *_dialog, QTextEdit *_theBox) :
   content(_content),
   dialog(_dialog),
Index: src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/RandomNumberDistribution_ParametersQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -25,5 +26,5 @@
   Q_OBJECT
 public:
-  RandomNumberDistribution_ParametersQtQueryPipe(const RandomNumberDistribution_Parameters *_content, QtDialog *_dialog, QTextEdit *_theBox);
+  RandomNumberDistribution_ParametersQtQueryPipe(Parameter<RandomNumberDistribution_Parameters> &_content, QtDialog *_dialog, QTextEdit *_theBox);
   virtual ~RandomNumberDistribution_ParametersQtQueryPipe();
 
@@ -32,5 +33,5 @@
 
 private:
-  const RandomNumberDistribution_Parameters *content;
+  Parameter<RandomNumberDistribution_Parameters> &content;
   QtDialog *dialog;
   QTextEdit *theBox;
Index: src/UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
+++ src/UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+
+/*
+ * BoxQtQueryPipe.cpp
+ *
+ *  Created on: Oct 25, 2010
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.hpp"
+#include "UIElements/Qt4/QtDialog.hpp"
+
+#include <Qt/qcombobox.h>
+#include <Qt/qtablewidget.h>
+
+#include "CodePatterns/MemDebug.hpp"
+#include "LinearAlgebra/RealSpaceMatrix.hpp"
+
+RealSpaceMatrixQtQueryPipe::RealSpaceMatrixQtQueryPipe(Parameter<RealSpaceMatrix> &_content, QtDialog *_dialog, QTableWidget *_inputTable) :
+  content(_content),
+  dialog(_dialog),
+  inputTable(_inputTable)
+{
+  tmpM = new RealSpaceMatrix();
+  tmpM->setIdentity();
+}
+
+RealSpaceMatrixQtQueryPipe::~RealSpaceMatrixQtQueryPipe()
+{
+  delete tmpM;
+}
+
+void RealSpaceMatrixQtQueryPipe::update(int row, int column)
+{
+  tmpM->at(row, column) = inputTable->item(row, column)->text().toDouble();
+  content.set(*tmpM);
+  dialog->update();
+}
+
+
Index: src/UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
+++ src/UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -0,0 +1,44 @@
+/*
+ * BoxQtQueryPipe.hpp
+ *
+ *  Created on: Nov 8, 2010
+ *      Author: heber
+ */
+
+#ifndef BOXQTQUERYPIPE_HPP_
+#define BOXQTQUERYPIPE_HPP_
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+
+#include "Parameters/Parameter.hpp"
+#include <Qt/qwidget.h>
+
+class QTableWidget;
+
+class QtDialog;
+class RealSpaceMatrix;
+
+
+class RealSpaceMatrixQtQueryPipe : public QWidget {
+  Q_OBJECT
+public:
+  RealSpaceMatrixQtQueryPipe(Parameter<RealSpaceMatrix> &_content, QtDialog *_dialog, QTableWidget *_inputTable);
+  virtual ~RealSpaceMatrixQtQueryPipe();
+
+public slots:
+  void update(int,int);
+
+private:
+  Parameter<RealSpaceMatrix> &content;
+  QtDialog *dialog;
+  QTableWidget *inputTable;
+
+  RealSpaceMatrix *tmpM;
+};
+
+
+#endif /* BOXQTQUERYPIPE_HPP_ */
Index: src/UIElements/Qt4/Pipe/StringQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/StringQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/StringQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -26,5 +26,5 @@
 
 
-StringQtQueryPipe::StringQtQueryPipe(std::string *_content, QtDialog *_dialog) :
+StringQtQueryPipe::StringQtQueryPipe(Parameter<std::string> &_content, QtDialog *_dialog) :
   content(_content),
   dialog(_dialog)
@@ -35,5 +35,5 @@
 
 void StringQtQueryPipe::update(const QString& newText) {
-  content->assign(newText.toStdString());
+  content.set(newText.toStdString());
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/StringQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/StringQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/StringQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -24,5 +25,5 @@
   Q_OBJECT
 public:
-  StringQtQueryPipe(std::string *_content, QtDialog *_dialog);
+  StringQtQueryPipe(Parameter<std::string> &_content, QtDialog *_dialog);
   virtual ~StringQtQueryPipe();
 
@@ -31,5 +32,5 @@
 
 private:
-  std::string *content;
+  Parameter<std::string> &content;
   QtDialog *dialog;
 
Index: src/UIElements/Qt4/Pipe/UnsignedIntQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/UnsignedIntQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/UnsignedIntQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -24,5 +24,5 @@
 
 
-UnsignedIntQtQueryPipe::UnsignedIntQtQueryPipe(unsigned int *_content, QtDialog *_dialog) :
+UnsignedIntQtQueryPipe::UnsignedIntQtQueryPipe(Parameter<unsigned int> &_content, QtDialog *_dialog) :
   content(_content),
   dialog(_dialog)
@@ -33,5 +33,5 @@
 
 void UnsignedIntQtQueryPipe::update(unsigned int newUnsignedInt) {
-  (*content) = newUnsignedInt;
+  content.set(newUnsignedInt);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/UnsignedIntQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/UnsignedIntQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/UnsignedIntQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -22,5 +23,5 @@
   Q_OBJECT
 public:
-  UnsignedIntQtQueryPipe(unsigned int *_content, QtDialog *_dialog);
+  UnsignedIntQtQueryPipe(Parameter<unsigned int> &_content, QtDialog *_dialog);
   virtual ~UnsignedIntQtQueryPipe();
 
@@ -29,5 +30,5 @@
 
 private:
-  unsigned int *content;
+  Parameter<unsigned int> &content;
   QtDialog *dialog;
 
Index: src/UIElements/Qt4/Pipe/VectorQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/VectorQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/VectorQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -26,5 +26,5 @@
 
 
-VectorQtQueryPipe::VectorQtQueryPipe(Vector *_content, QtDialog *_dialog, QComboBox *_theBox) :
+VectorQtQueryPipe::VectorQtQueryPipe(Parameter<Vector> &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
@@ -36,15 +36,21 @@
 
 void VectorQtQueryPipe::updateX(double newDouble) {
-  (*content)[0] = newDouble;
+  Vector v = content.get();
+  v[0] = newDouble;
+  content.set(v);
   dialog->update();
 }
 
 void VectorQtQueryPipe::updateY(double newDouble) {
-  (*content)[1] = newDouble;
+  Vector v = content.get();
+  v[1] = newDouble;
+  content.set(v);
   dialog->update();
 }
 
 void VectorQtQueryPipe::updateZ(double newDouble) {
-  (*content)[2] = newDouble;
+  Vector v = content.get();
+  v[2] = newDouble;
+  content.set(v);
   dialog->update();
 }
Index: src/UIElements/Qt4/Pipe/VectorQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/VectorQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/VectorQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -25,5 +26,5 @@
   Q_OBJECT
 public:
-  VectorQtQueryPipe(Vector *_content, QtDialog *_dialog, QComboBox *_theBox);
+  VectorQtQueryPipe(Parameter<Vector> &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~VectorQtQueryPipe();
 
@@ -34,5 +35,5 @@
 
 private:
-  Vector *content;
+  Parameter<Vector> &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/Pipe/VectorsQtQueryPipe.cpp
===================================================================
--- src/UIElements/Qt4/Pipe/VectorsQtQueryPipe.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/VectorsQtQueryPipe.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,5 +28,5 @@
 
 
-VectorsQtQueryPipe::VectorsQtQueryPipe(std::vector<Vector> *_content, QtDialog *_dialog, QComboBox *_theBox) :
+VectorsQtQueryPipe::VectorsQtQueryPipe(Parameter<std::vector<Vector> > &_content, QtDialog *_dialog, QComboBox *_theBox) :
   content(_content),
   dialog(_dialog),
Index: src/UIElements/Qt4/Pipe/VectorsQtQueryPipe.hpp
===================================================================
--- src/UIElements/Qt4/Pipe/VectorsQtQueryPipe.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Pipe/VectorsQtQueryPipe.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include <Qt/qwidget.h>
 
@@ -27,5 +28,5 @@
   Q_OBJECT
 public:
-  VectorsQtQueryPipe(std::vector<Vector>*_content, QtDialog *_dialog, QComboBox *_theBox);
+  VectorsQtQueryPipe(Parameter<std::vector<Vector> > &_content, QtDialog *_dialog, QComboBox *_theBox);
   virtual ~VectorsQtQueryPipe();
 
@@ -34,5 +35,5 @@
 
 private:
-  std::vector<Vector> *content;
+  Parameter<std::vector<Vector> > &content;
   QtDialog *dialog;
   QComboBox *theBox;
Index: src/UIElements/Qt4/QtDialog.cpp
===================================================================
--- src/UIElements/Qt4/QtDialog.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/QtDialog.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -80,107 +80,107 @@
 }
 
-void QtDialog::queryBoolean(const char* title,string)
+void QtDialog::queryBoolean(Parameter<bool> &param, const char* title,string)
 {
-  registerQuery(new BooleanQtQuery(title,inputLayout,this));
+  registerQuery(new BooleanQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryAtom(const char* title, std::string)
+void QtDialog::queryAtom(Parameter<const atom *> &param, const char* title, std::string)
 {
-  registerQuery(new AtomQtQuery(title,inputLayout,this));
+  registerQuery(new AtomQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryAtoms(const char* title, std::string)
+void QtDialog::queryAtoms(Parameter<std::vector<const atom *> > &param, const char* title, std::string)
 {
-  registerQuery(new AtomsQtQuery(title,inputLayout,this));
+  registerQuery(new AtomsQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryBox(const char* title, std::string)
+void QtDialog::queryRealSpaceMatrix(Parameter<RealSpaceMatrix> &param, const char* title, std::string)
 {
-  registerQuery(new BoxQtQuery(title,inputLayout,this));
+  registerQuery(new RealSpaceMatrixQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryInt(const char *title,string)
+void QtDialog::queryInt(Parameter<int> &param, const char *title,string)
 {
-  registerQuery(new IntQtQuery(title,inputLayout,this));
+  registerQuery(new IntQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryInts(const char *title,string)
+void QtDialog::queryInts(Parameter<std::vector<int> > &param, const char *title,string)
 {
-  registerQuery(new IntsQtQuery(title,inputLayout,this));
+  registerQuery(new IntsQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryUnsignedInt(const char *title,string)
+void QtDialog::queryUnsignedInt(Parameter<unsigned int> &param, const char *title,string)
 {
-  registerQuery(new UnsignedIntQtQuery(title,inputLayout,this));
+  registerQuery(new UnsignedIntQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryUnsignedInts(const char *title,string)
+void QtDialog::queryUnsignedInts(Parameter<std::vector<unsigned int> > &param, const char *title,string)
 {
-  registerQuery(new UnsignedIntsQtQuery(title,inputLayout,this));
+  registerQuery(new UnsignedIntsQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryDouble(const char* title,string)
+void QtDialog::queryDouble(Parameter<double> &param, const char* title,string)
 {
-  registerQuery(new DoubleQtQuery(title,inputLayout,this));
+  registerQuery(new DoubleQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryDoubles(const char* title,string)
+void QtDialog::queryDoubles(Parameter<std::vector<double> > &param, const char* title,string)
 {
-  registerQuery(new DoublesQtQuery(title,inputLayout,this));
+  registerQuery(new DoublesQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryString(const char* title,string)
+void QtDialog::queryString(Parameter<std::string> &param, const char* title,string)
 {
-  registerQuery(new StringQtQuery(title,inputLayout,this));
+  registerQuery(new StringQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryStrings(const char* title,string)
+void QtDialog::queryStrings(Parameter<std::vector<std::string> > &param, const char* title,string)
 {
-  registerQuery(new StringsQtQuery(title,inputLayout,this));
+  registerQuery(new StringsQtQuery(param, title,inputLayout,this));
 }
 
-void QtDialog::queryMolecule(const char *title,string)
+void QtDialog::queryMolecule(Parameter<const molecule *> &param, const char *title,string)
 {
-  registerQuery(new MoleculeQtQuery(title,inputLayout,this));
+  registerQuery(new MoleculeQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryMolecules(const char *title,string)
+void QtDialog::queryMolecules(Parameter<std::vector<const molecule *> > &param, const char *title,string)
 {
-  registerQuery(new MoleculesQtQuery(title,inputLayout,this));
+  registerQuery(new MoleculesQtQuery(param, title,inputLayout,this));
 }
 
-void QtDialog::queryVector(const char* title, bool check,string)
+void QtDialog::queryVector(Parameter<Vector> &param, const char* title, bool check,string)
 {
-  registerQuery(new VectorQtQuery(title,check,inputLayout,this));
+  registerQuery(new VectorQtQuery(param,title,check,inputLayout,this));
 }
 
-void QtDialog::queryVectors(const char* title, bool check,string)
+void QtDialog::queryVectors(Parameter<std::vector<Vector> > &param, const char* title, bool check,string)
 {
-  registerQuery(new VectorsQtQuery(title,check,inputLayout,this));
+  registerQuery(new VectorsQtQuery(param, title,check,inputLayout,this));
 }
 
-void QtDialog::queryElement(const char* title, std::string)
+void QtDialog::queryElement(Parameter<const element *> &param, const char* title, std::string)
 {
-  registerQuery(new ElementQtQuery(title,inputLayout,this));
+  registerQuery(new ElementQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryElements(const char* title, std::string)
+void QtDialog::queryElements(Parameter<std::vector<const element *> > &param, const char* title, std::string)
 {
-  registerQuery(new ElementsQtQuery(title,inputLayout,this));
+  registerQuery(new ElementsQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryFile(const char* title, std::string)
+void QtDialog::queryFile(Parameter<boost::filesystem::path> &param, const char* title, std::string)
 {
-  registerQuery(new FileQtQuery(title,inputLayout,this));
+  registerQuery(new FileQtQuery(param,title,inputLayout,this));
 }
 
-void QtDialog::queryFiles(const char* title, std::string)
+void QtDialog::queryFiles(Parameter<std::vector< boost::filesystem::path> >&param, const char* title, std::string)
 {
-  registerQuery(new FilesQtQuery(title,inputLayout,this));
+  registerQuery(new FilesQtQuery(param, title,inputLayout,this));
 }
 
-void QtDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string)
+void QtDialog::queryRandomNumberDistribution_Parameters(Parameter<RandomNumberDistribution_Parameters> &param, const char* title, std::string)
 {
-  registerQuery(new RandomNumberDistribution_ParametersQtQuery(title,inputLayout,this));
+  registerQuery(new RandomNumberDistribution_ParametersQtQuery(param,title,inputLayout,this));
 }
 
Index: src/UIElements/Qt4/QtDialog.hpp
===================================================================
--- src/UIElements/Qt4/QtDialog.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/QtDialog.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -15,4 +15,5 @@
 
 
+#include "Parameters/Parameter.hpp"
 #include "UIElements/Dialog.hpp"
 #include <QtGui/QDialog>
@@ -33,25 +34,25 @@
 
   virtual void queryEmpty(const char*, std::string);
-  virtual void queryBoolean(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 queryDouble(const char*,std::string = "");
-  virtual void queryDoubles(const char*,std::string = "");
-  virtual void queryString(const char*,std::string = "");
-  virtual void queryStrings(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 = "");
+  virtual void queryBoolean(Parameter<bool> &, const char *, std::string = "");
+  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 queryDouble(Parameter<double> &, const char*,std::string = "");
+  virtual void queryDoubles(Parameter<std::vector<double> > &, 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 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 = "");
 
   virtual bool display();
@@ -63,5 +64,5 @@
   class AtomsQtQuery;
   class BooleanQtQuery;
-  class BoxQtQuery;
+  class RealSpaceMatrixQtQuery;
   class DoubleQtQuery;
   class DoublesQtQuery;
Index: src/UIElements/Qt4/Query/AtomQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/AtomQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/AtomQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,6 +30,6 @@
 #include "World.hpp"
 
-QtDialog::AtomQtQuery::AtomQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::AtomQuery(_title),
+QtDialog::AtomQtQuery::AtomQtQuery(Parameter<const atom *> &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::AtomQuery(param, _title),
     parent(_parent)
 {
@@ -46,5 +46,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new AtomQtQueryPipe(&tmp,_dialog, inputBox);
+  pipe = new AtomQtQueryPipe(tmp,_dialog, inputBox);
   pipe->update(inputBox->currentIndex());
   connect(inputBox,SIGNAL(currentIndexChanged(int)),pipe,SLOT(update(int)));
Index: src/UIElements/Qt4/Query/AtomsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/AtomsQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/AtomsQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -33,6 +33,6 @@
 
 
-QtDialog::AtomsQtQuery::AtomsQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::AtomsQuery(_title),
+QtDialog::AtomsQtQuery::AtomsQtQuery(Parameter<std::vector<const atom *> > &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::AtomsQuery(param, _title),
     parent(_parent)
 {
@@ -67,5 +67,5 @@
   thisHLayout->addLayout(thisV2Layout);
 
-  pipe = new AtomsQtQueryPipe(&tmp,_dialog,inputList);
+  pipe = new AtomsQtQueryPipe(tmp,_dialog,inputList);
   connect(inputList,SIGNAL(itemSelectionChanged()),pipe,SLOT(IntegerSelected()));
   connect(AddButton,SIGNAL(Clicked()),pipe,SLOT(add()));
Index: src/UIElements/Qt4/Query/BooleanQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/BooleanQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/BooleanQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,11 +28,14 @@
 
 
-QtDialog::BooleanQtQuery::BooleanQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
-    Dialog::BooleanQuery(_title),
+QtDialog::BooleanQtQuery::BooleanQtQuery(Parameter<bool> &param, std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
+    Dialog::BooleanQuery(param, _title),
     parent(_parent)
 {
+  if (!param.isSet())
+    param.set(false);
   thisLayout = new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()),_dialog);
   booleanCheckBox = new QCheckBox(QString(getTitle().c_str()), _dialog);
+  booleanCheckBox->setCheckState(param.get() ? Qt::Checked : Qt::Unchecked);
 
   parent->addLayout(thisLayout);
@@ -40,5 +43,5 @@
   thisLayout->addWidget(booleanCheckBox);
 
-  pipe = new BooleanQtQueryPipe(&tmp,_dialog,booleanCheckBox);
+  pipe = new BooleanQtQueryPipe(tmp,_dialog,booleanCheckBox);
   connect(booleanCheckBox, SIGNAL(stateChanged(int)), pipe, SLOT(update(int)));
 }
Index: src/UIElements/Qt4/Query/BoxQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/BoxQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ 	(revision )
@@ -1,73 +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.
- */
-
-/*
- * BoxQtQuery.cpp
- *
- *  Created on: Oct 25, 2010
- *      Author: heber
- */
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <Qt/qboxlayout.h>
-#include <Qt/qlabel.h>
-#include <Qt/qtablewidget.h>
-
-#include "CodePatterns/MemDebug.hpp"
-
-#include "UIElements/Qt4/Query/QtQuery.hpp"
-#include "UIElements/Qt4/Pipe/BoxQtQueryPipe.hpp"
-
-#include "LinearAlgebra/RealSpaceMatrix.hpp"
-#include "World.hpp"
-
-QtDialog::BoxQtQuery::BoxQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::BoxQuery(_title),
-    parent(_parent)
-{
-  thisLayout = new QHBoxLayout();
-  titleLabel = new QLabel(QString(getTitle().c_str()));
-
-  // init input table
-  inputTable = new QTableWidget(3,3, _dialog);
-  QStringList CoordinateList;
-  CoordinateList << "x" << "y" << "z";
-  inputTable->setHorizontalHeaderLabels(CoordinateList);
-  inputTable->setVerticalHeaderLabels(CoordinateList);
-
-  pipe = new BoxQtQueryPipe(tmp,_dialog, inputTable);
-
-  // fill the box with current matrix
-  const RealSpaceMatrix &domain = World::getInstance().getDomain().getM();
-  for (int i=0;i<3;i++)
-    for (int j=0;j<3;j++) {
-      QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(domain.at(i,j)));
-      inputTable->setItem(i,j,newItem);
-      pipe->update(i,j);
-    }
-
-  parent->addLayout(thisLayout);
-  thisLayout->addWidget(titleLabel);
-  thisLayout->addWidget(inputTable);
-
-  connect(inputTable,SIGNAL(cellChanged(int,int)),pipe,SLOT(update(int,int)));
-}
-
-QtDialog::BoxQtQuery::~BoxQtQuery()
-{
-  delete pipe;
-}
-
-bool QtDialog::BoxQtQuery::handle() {
-  return true;
-}
-
-
Index: src/UIElements/Qt4/Query/DoubleQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/DoubleQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/DoubleQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,12 +28,14 @@
 
 
-QtDialog::DoubleQtQuery::DoubleQtQuery(std::string title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::DoubleQuery(title),
+QtDialog::DoubleQtQuery::DoubleQtQuery(Parameter<double> &param, std::string title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::DoubleQuery(param, title),
     parent(_parent)
 {
+  if (!param.isSet())
+    param.set(0.0);
   thisLayout = new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()));
   inputBox = new QDoubleSpinBox();
-  inputBox->setValue(0);
+  inputBox->setValue(param.get());
   inputBox->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
   inputBox->setDecimals(3);
@@ -42,5 +44,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new DoubleQtQueryPipe(&tmp,_dialog);
+  pipe = new DoubleQtQueryPipe(tmp,_dialog);
   pipe->update(inputBox->value());
   connect(inputBox,SIGNAL(valueChanged(double)),pipe,SLOT(update(double)));
Index: src/UIElements/Qt4/Query/DoublesQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/DoublesQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/DoublesQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,6 +30,6 @@
 
 
-QtDialog::DoublesQtQuery::DoublesQtQuery(std::string title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::DoublesQuery(title),
+QtDialog::DoublesQtQuery::DoublesQtQuery(Parameter<std::vector<double> > &param, std::string title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::DoublesQuery(param, title),
     parent(_parent)
 {
@@ -60,5 +60,5 @@
   thisHLayout->addLayout(thisV2Layout);
 
-  pipe = new QtQueryListPipe<double>(&tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
+  pipe = new QtQueryListPipe<double>(tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
   connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(IntegerEntered(const QString&)));
   connect(inputList,SIGNAL(itemSelectionChanged()),pipe,SLOT(IntegerSelected()));
Index: src/UIElements/Qt4/Query/ElementQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/ElementQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/ElementQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,6 +31,6 @@
 #include "World.hpp"
 
-QtDialog::ElementQtQuery::ElementQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
-    Dialog::ElementQuery(_title),
+QtDialog::ElementQtQuery::ElementQtQuery(Parameter<const element *> &param, std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
+    Dialog::ElementQuery(param, _title),
     parent(_parent)
 {
@@ -51,5 +51,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new ElementQtQueryPipe(&tmp,_dialog,inputBox);
+  pipe = new ElementQtQueryPipe(tmp,_dialog,inputBox);
   pipe->update(inputBox->currentIndex());
   connect(inputBox,SIGNAL(currentIndexChanged(int)),pipe,SLOT(update(int)));
Index: src/UIElements/Qt4/Query/ElementsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/ElementsQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/ElementsQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -32,6 +32,6 @@
 
 
-QtDialog::ElementsQtQuery::ElementsQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
-    Dialog::ElementsQuery(_title),
+QtDialog::ElementsQtQuery::ElementsQtQuery(Parameter<std::vector<const element *> > &param, std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
+    Dialog::ElementsQuery(param, _title),
     parent(_parent)
 {
@@ -52,5 +52,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new ElementsQtQueryPipe(&tmp,_dialog,inputBox);
+  pipe = new ElementsQtQueryPipe(tmp,_dialog,inputBox);
   pipe->update(inputBox->currentIndex());
   connect(inputBox,SIGNAL(currentIndexChanged(int)),pipe,SLOT(update(int)));
Index: src/UIElements/Qt4/Query/FileQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/FileQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/FileQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,6 +29,6 @@
 
 
-QtDialog::FileQtQuery::FileQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
-    Dialog::FileQuery(_title),
+QtDialog::FileQtQuery::FileQtQuery(Parameter<boost::filesystem::path> &param, std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
+    Dialog::FileQuery(param, _title),
     parent(_parent)
 {
@@ -43,5 +43,5 @@
   filedialogButton = new QPushButton("&Choose", _dialog);
 
-  pipe = new FileQtQueryPipe(&tmp,_dialog,filenameLineEdit,filedialogButton);
+  pipe = new FileQtQueryPipe(tmp,_dialog,filenameLineEdit,filedialogButton);
 
   thisLayout = new QHBoxLayout();
Index: src/UIElements/Qt4/Query/FilesQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/FilesQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/FilesQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -26,10 +26,12 @@
 #include "CodePatterns/MemDebug.hpp"
 
+#include <boost/filesystem/path.hpp>
+
 #include "UIElements/Qt4/Query/QtQuery.hpp"
 #include "UIElements/Qt4/Pipe/QtQueryListPipe.hpp"
 
 
-QtDialog::FilesQtQuery::FilesQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
-    Dialog::FilesQuery(_title),
+QtDialog::FilesQtQuery::FilesQtQuery(Parameter<std::vector< boost::filesystem::path> > &param, std::string _title, QBoxLayout *_parent, QtDialog *_dialog) :
+    Dialog::FilesQuery(param, _title),
     parent(_parent)
 {
@@ -60,5 +62,5 @@
   thisHLayout->addLayout(thisV2Layout);
 
-  pipe = new QtQueryListPipe<boost::filesystem::path>(&tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
+  pipe = new QtQueryListPipe<boost::filesystem::path>(tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
   connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(IntegerEntered(const QString&)));
   connect(inputList,SIGNAL(itemSelectionChanged()),pipe,SLOT(IntegerSelected()));
Index: src/UIElements/Qt4/Query/IntQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/IntQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/IntQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,17 +28,19 @@
 
 
-QtDialog::IntQtQuery::IntQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::IntQuery(_title),
+QtDialog::IntQtQuery::IntQtQuery(Parameter<int> &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::IntQuery(param, _title),
     parent(_parent)
 {
+  if (!param.isSet())
+    param.set(0);
   thisLayout = new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()));
   inputBox = new QSpinBox();
-  inputBox->setValue(0);
+  inputBox->setValue(param.get());
   parent->addLayout(thisLayout);
   thisLayout->addWidget(titleLabel);
   thisLayout->addWidget(inputBox);
 
-  pipe = new IntQtQueryPipe(&tmp,_dialog);
+  pipe = new IntQtQueryPipe(tmp,_dialog);
   pipe->update(inputBox->value());
   connect(inputBox,SIGNAL(valueChanged(int)),pipe,SLOT(update(int)));
Index: src/UIElements/Qt4/Query/IntsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/IntsQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/IntsQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,6 +30,6 @@
 
 
-QtDialog::IntsQtQuery::IntsQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::IntsQuery(_title),
+QtDialog::IntsQtQuery::IntsQtQuery(Parameter<std::vector<int> > &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::IntsQuery(param, _title),
     parent(_parent)
 {
@@ -60,5 +60,5 @@
   thisHLayout->addLayout(thisV2Layout);
 
-  pipe = new QtQueryListPipe<int>(&tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
+  pipe = new QtQueryListPipe<int>(tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
   connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(IntegerEntered(const QString&)));
   connect(inputList,SIGNAL(itemSelectionChanged()),pipe,SLOT(IntegerSelected()));
Index: src/UIElements/Qt4/Query/MoleculeQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/MoleculeQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/MoleculeQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,6 +31,6 @@
 
 
-QtDialog::MoleculeQtQuery::MoleculeQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::MoleculeQuery(_title),
+QtDialog::MoleculeQtQuery::MoleculeQtQuery(Parameter<const molecule *> &param, std::string _title, QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::MoleculeQuery(param, _title),
     parent(_parent)
 {
@@ -51,5 +51,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new MoleculeQtQueryPipe(&tmp,_dialog,inputBox);
+  pipe = new MoleculeQtQueryPipe(tmp,_dialog,inputBox);
   pipe->update(inputBox->currentIndex());
   connect(inputBox,SIGNAL(currentIndexChanged(int)),pipe,SLOT(update(int)));
Index: src/UIElements/Qt4/Query/MoleculesQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/MoleculesQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/MoleculesQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,6 +31,6 @@
 
 
-QtDialog::MoleculesQtQuery::MoleculesQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::MoleculesQuery(_title),
+QtDialog::MoleculesQtQuery::MoleculesQtQuery(Parameter<std::vector<const molecule *> > &param, std::string _title, QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::MoleculesQuery(param, _title),
     parent(_parent)
 {
@@ -51,5 +51,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new MoleculesQtQueryPipe(&tmp,_dialog,inputBox);
+  pipe = new MoleculesQtQueryPipe(tmp,_dialog,inputBox);
   pipe->update(inputBox->currentIndex());
   connect(inputBox,SIGNAL(currentIndexChanged(int)),pipe,SLOT(update(int)));
Index: src/UIElements/Qt4/Query/QtQuery.hpp
===================================================================
--- src/UIElements/Qt4/Query/QtQuery.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/QtQuery.hpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -16,4 +16,5 @@
 
 #include "Qt4/QtDialog.hpp"
+#include "Parameters/Parameter.hpp"
 
 class QHBoxLayout;
@@ -36,5 +37,5 @@
 class AtomsQtQueryPipe;
 class BooleanQtQueryPipe;
-class BoxQtQueryPipe;
+class RealSpaceMatrixQtQueryPipe;
 class DoubleQtQueryPipe;
 class DoublesQtQueryPipe;
@@ -43,4 +44,5 @@
 class EmptyQtQueryPipe;
 class FileQtQueryPipe;
+class FilesQtQueryPipe;
 class IntQtQueryPipe;
 class MoleculeQtQueryPipe;
@@ -56,5 +58,5 @@
 class QtDialog::AtomQtQuery : public Dialog::AtomQuery {
 public:
-  AtomQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  AtomQtQuery(Parameter<const atom *> &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~AtomQtQuery();
   virtual bool handle();
@@ -70,5 +72,5 @@
 class QtDialog::AtomsQtQuery : public Dialog::AtomsQuery {
 public:
-  AtomsQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  AtomsQtQuery(Parameter<std::vector<const atom *> > &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~AtomsQtQuery();
   virtual bool handle();
@@ -85,5 +87,5 @@
 class QtDialog::BooleanQtQuery : public Dialog::BooleanQuery {
 public:
-  BooleanQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
+  BooleanQtQuery(Parameter<bool> &, std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
   virtual ~BooleanQtQuery();
   virtual bool handle();
@@ -97,8 +99,8 @@
 };
 
-class QtDialog::BoxQtQuery : public Dialog::BoxQuery {
-public:
-  BoxQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
-  virtual ~BoxQtQuery();
+class QtDialog::RealSpaceMatrixQtQuery : public Dialog::RealSpaceMatrixQuery {
+public:
+  RealSpaceMatrixQtQuery(Parameter<RealSpaceMatrix> &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  virtual ~RealSpaceMatrixQtQuery();
   virtual bool handle();
 private:
@@ -108,10 +110,10 @@
   QTableWidget *inputTable;
 
-  BoxQtQueryPipe *pipe;
+  RealSpaceMatrixQtQueryPipe *pipe;
 };
 
 class QtDialog::DoubleQtQuery : public Dialog::DoubleQuery {
 public:
-  DoubleQtQuery(std::string title,QBoxLayout *_parent,QtDialog *_dialog);
+  DoubleQtQuery(Parameter<double> &, std::string title,QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~DoubleQtQuery();
   virtual bool handle();
@@ -127,5 +129,5 @@
 class QtDialog::DoublesQtQuery : public Dialog::DoublesQuery {
 public:
-  DoublesQtQuery(std::string title,QBoxLayout *_parent,QtDialog *_dialog);
+  DoublesQtQuery(Parameter<std::vector<double> > &, std::string title,QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~DoublesQtQuery();
   virtual bool handle();
@@ -141,5 +143,5 @@
 class QtDialog::ElementQtQuery : public Dialog::ElementQuery {
 public:
-  ElementQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
+  ElementQtQuery(Parameter<const element *> &, std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
   virtual ~ElementQtQuery();
   virtual bool handle();
@@ -155,5 +157,5 @@
 class QtDialog::ElementsQtQuery : public Dialog::ElementsQuery {
 public:
-  ElementsQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
+  ElementsQtQuery(Parameter<std::vector<const element *> > &, std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
   virtual ~ElementsQtQuery();
   virtual bool handle();
@@ -182,5 +184,5 @@
 class QtDialog::FileQtQuery : public Dialog::FileQuery {
 public:
-  FileQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
+  FileQtQuery(Parameter<boost::filesystem::path> &, std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
   virtual ~FileQtQuery();
   virtual bool handle();
@@ -197,5 +199,5 @@
 class QtDialog::FilesQtQuery : public Dialog::FilesQuery {
 public:
-  FilesQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
+  FilesQtQuery(Parameter<std::vector< boost::filesystem::path> > &param, std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
   virtual ~FilesQtQuery();
   virtual bool handle();
@@ -214,5 +216,5 @@
 class QtDialog::IntQtQuery : public Dialog::IntQuery {
 public:
-  IntQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
+  IntQtQuery(Parameter<int> &, std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~IntQtQuery();
   virtual bool handle();
@@ -228,5 +230,5 @@
 class QtDialog::IntsQtQuery : public Dialog::IntsQuery {
 public:
-  IntsQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
+  IntsQtQuery(Parameter<std::vector<int> > &, std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~IntsQtQuery();
   virtual bool handle();
@@ -245,5 +247,5 @@
 class QtDialog::MoleculeQtQuery : public Dialog::MoleculeQuery {
 public:
-  MoleculeQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  MoleculeQtQuery(Parameter<const molecule *> &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~MoleculeQtQuery();
   virtual bool handle();
@@ -259,5 +261,5 @@
 class QtDialog::MoleculesQtQuery : public Dialog::MoleculesQuery {
 public:
-  MoleculesQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  MoleculesQtQuery(Parameter<std::vector<const molecule *> > &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~MoleculesQtQuery();
   virtual bool handle();
@@ -273,5 +275,5 @@
 class QtDialog::StringQtQuery : public Dialog::StringQuery {
 public:
-  StringQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  StringQtQuery(Parameter<std::string> &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~StringQtQuery();
   virtual bool handle();
@@ -287,5 +289,5 @@
 class QtDialog::StringsQtQuery : public Dialog::StringsQuery {
 public:
-  StringsQtQuery(std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
+  StringsQtQuery(Parameter<std::vector<std::string> > &, std::string _title, QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~StringsQtQuery();
   virtual bool handle();
@@ -301,5 +303,5 @@
 class QtDialog::UnsignedIntQtQuery : public Dialog::UnsignedIntQuery {
 public:
-  UnsignedIntQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
+  UnsignedIntQtQuery(Parameter<unsigned int> &, std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~UnsignedIntQtQuery();
   virtual bool handle();
@@ -315,5 +317,5 @@
 class QtDialog::UnsignedIntsQtQuery : public Dialog::UnsignedIntsQuery {
 public:
-  UnsignedIntsQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
+  UnsignedIntsQtQuery(Parameter<std::vector<unsigned int> > &, std::string _title,QBoxLayout *_parent,QtDialog *_dialog);
   virtual ~UnsignedIntsQtQuery();
   virtual bool handle();
@@ -333,5 +335,5 @@
 class QtDialog::VectorQtQuery : public Dialog::VectorQuery {
 public:
-  VectorQtQuery(std::string title,bool _check,QBoxLayout *,QtDialog *);
+  VectorQtQuery(Parameter<Vector> &, std::string title,bool _check,QBoxLayout *,QtDialog *);
   virtual ~VectorQtQuery();
   virtual bool handle();
@@ -352,5 +354,5 @@
 class QtDialog::VectorsQtQuery : public Dialog::VectorsQuery {
 public:
-  VectorsQtQuery(std::string title,bool _check,QBoxLayout *,QtDialog *);
+  VectorsQtQuery(Parameter<std::vector<Vector> > &, std::string title,bool _check,QBoxLayout *,QtDialog *);
   virtual ~VectorsQtQuery();
   virtual bool handle();
@@ -369,5 +371,5 @@
 class QtDialog::RandomNumberDistribution_ParametersQtQuery : public Dialog::RandomNumberDistribution_ParametersQuery {
 public:
-  RandomNumberDistribution_ParametersQtQuery(std::string title,QBoxLayout *,QtDialog *);
+  RandomNumberDistribution_ParametersQtQuery(Parameter<RandomNumberDistribution_Parameters> &, std::string title,QBoxLayout *,QtDialog *);
   virtual ~RandomNumberDistribution_ParametersQtQuery();
   virtual bool handle();
Index: src/UIElements/Qt4/Query/RandomNumberDistribution_ParametersQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/RandomNumberDistribution_ParametersQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/RandomNumberDistribution_ParametersQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -31,6 +31,6 @@
 #include "World.hpp"
 
-QtDialog::RandomNumberDistribution_ParametersQtQuery::RandomNumberDistribution_ParametersQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::RandomNumberDistribution_ParametersQuery(_title),
+QtDialog::RandomNumberDistribution_ParametersQtQuery::RandomNumberDistribution_ParametersQtQuery(Parameter<RandomNumberDistribution_Parameters> &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::RandomNumberDistribution_ParametersQuery(param, _title),
     parent(_parent)
 {
@@ -50,5 +50,5 @@
   okButton = new QPushButton(tr("Ok"));
 
-  pipe = new RandomNumberDistribution_ParametersQtQueryPipe(&tmp,_dialog, inputBox);
+  pipe = new RandomNumberDistribution_ParametersQtQueryPipe(tmp,_dialog, inputBox);
   connect(okButton,SIGNAL(clicked()),pipe,SLOT(update()));
 }
Index: src/UIElements/Qt4/Query/RealSpaceMatrixQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/RealSpaceMatrixQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
+++ src/UIElements/Qt4/Query/RealSpaceMatrixQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+/*
+ * BoxQtQuery.cpp
+ *
+ *  Created on: Oct 25, 2010
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <Qt/qboxlayout.h>
+#include <Qt/qlabel.h>
+#include <Qt/qtablewidget.h>
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "UIElements/Qt4/Query/QtQuery.hpp"
+#include "UIElements/Qt4/Pipe/RealSpaceMatrixQtQueryPipe.hpp"
+
+#include "LinearAlgebra/RealSpaceMatrix.hpp"
+#include "World.hpp"
+
+QtDialog::RealSpaceMatrixQtQuery::RealSpaceMatrixQtQuery(Parameter<RealSpaceMatrix> &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::RealSpaceMatrixQuery(param, _title),
+    parent(_parent)
+{
+  thisLayout = new QHBoxLayout();
+  titleLabel = new QLabel(QString(getTitle().c_str()));
+
+  // init input table
+  inputTable = new QTableWidget(3,3, _dialog);
+  QStringList CoordinateList;
+  CoordinateList << "x" << "y" << "z";
+  inputTable->setHorizontalHeaderLabels(CoordinateList);
+  inputTable->setVerticalHeaderLabels(CoordinateList);
+
+  pipe = new RealSpaceMatrixQtQueryPipe(tmp,_dialog, inputTable);
+
+  // fill the box with current matrix
+  const RealSpaceMatrix &domain = World::getInstance().getDomain().getM();
+  for (int i=0;i<3;i++)
+    for (int j=0;j<3;j++) {
+      QTableWidgetItem *newItem = new QTableWidgetItem(tr("%1").arg(domain.at(i,j)));
+      inputTable->setItem(i,j,newItem);
+      pipe->update(i,j);
+    }
+
+  parent->addLayout(thisLayout);
+  thisLayout->addWidget(titleLabel);
+  thisLayout->addWidget(inputTable);
+
+  connect(inputTable,SIGNAL(cellChanged(int,int)),pipe,SLOT(update(int,int)));
+}
+
+QtDialog::RealSpaceMatrixQtQuery::~RealSpaceMatrixQtQuery()
+{
+  delete pipe;
+}
+
+bool QtDialog::RealSpaceMatrixQtQuery::handle() {
+  return true;
+}
+
+
Index: src/UIElements/Qt4/Query/StringQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/StringQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/StringQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,8 +28,10 @@
 
 
-QtDialog::StringQtQuery::StringQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::StringQuery(_title),
+QtDialog::StringQtQuery::StringQtQuery(Parameter<std::string> &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::StringQuery(param, _title),
     parent(_parent)
 {
+  if (!param.isSet())
+    param.set("");
   thisLayout = new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()));
@@ -39,5 +41,5 @@
   thisLayout->addWidget(inputBox);
 
-  pipe = new StringQtQueryPipe(&tmp,_dialog);
+  pipe = new StringQtQueryPipe(tmp,_dialog);
   pipe->update(inputBox->text());
   connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(update(const QString&)));
@@ -52,5 +54,5 @@
 bool QtDialog::StringQtQuery::handle()
 {
-  return tmp!="";
+  return tmp.get() != "";
 }
 
Index: src/UIElements/Qt4/Query/StringsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/StringsQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/StringsQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,6 +30,6 @@
 
 
-QtDialog::StringsQtQuery::StringsQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::StringsQuery(_title),
+QtDialog::StringsQtQuery::StringsQtQuery(Parameter<std::vector<std::string> > &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::StringsQuery(param, _title),
     parent(_parent)
 {
@@ -60,5 +60,5 @@
   thisHLayout->addLayout(thisV2Layout);
 
-  pipe = new QtQueryListPipe<std::string>(&tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
+  pipe = new QtQueryListPipe<std::string>(tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
   connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(IntegerEntered(const QString&)));
   connect(inputList,SIGNAL(itemSelectionChanged()),pipe,SLOT(IntegerSelected()));
@@ -76,12 +76,14 @@
   // dissect by ","
   std::string::iterator olditer = temp.begin();
+  std::vector<std::string> temp_strings;
   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 temp!="";
Index: src/UIElements/Qt4/Query/UnsignedIntQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/UnsignedIntQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/UnsignedIntQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -28,17 +28,19 @@
 
 
-QtDialog::UnsignedIntQtQuery::UnsignedIntQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::UnsignedIntQuery(_title),
+QtDialog::UnsignedIntQtQuery::UnsignedIntQtQuery(Parameter<unsigned int> &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::UnsignedIntQuery(param, _title),
     parent(_parent)
 {
+  if (!param.isSet())
+    param.set(0);
   thisLayout = new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()));
   inputBox = new QSpinBox();
-  inputBox->setValue(0);
+  inputBox->setValue(param.get());
   parent->addLayout(thisLayout);
   thisLayout->addWidget(titleLabel);
   thisLayout->addWidget(inputBox);
 
-  pipe = new UnsignedIntQtQueryPipe(&tmp,_dialog);
+  pipe = new UnsignedIntQtQueryPipe(tmp,_dialog);
   pipe->update(inputBox->value());
   connect(inputBox,SIGNAL(valueChanged(unsigned int)),pipe,SLOT(update(unsigned int)));
Index: src/UIElements/Qt4/Query/UnsignedIntsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/UnsignedIntsQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/UnsignedIntsQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -30,6 +30,6 @@
 
 
-QtDialog::UnsignedIntsQtQuery::UnsignedIntsQtQuery(std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::UnsignedIntsQuery(_title),
+QtDialog::UnsignedIntsQtQuery::UnsignedIntsQtQuery(Parameter<std::vector<unsigned int> > &param, std::string _title,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::UnsignedIntsQuery(param, _title),
     parent(_parent)
 {
@@ -60,5 +60,5 @@
   thisHLayout->addLayout(thisV2Layout);
 
-  pipe = new QtQueryListPipe<unsigned int>(&tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
+  pipe = new QtQueryListPipe<unsigned int>(tmp,_dialog,inputBox,inputList,AddButton,RemoveButton);
   connect(inputBox,SIGNAL(textChanged(const QString&)),pipe,SLOT(IntegerEntered(const QString&)));
   connect(inputList,SIGNAL(itemSelectionChanged()),pipe,SLOT(IntegerSelected()));
Index: src/UIElements/Qt4/Query/VectorQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/VectorQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/VectorQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,8 +29,10 @@
 
 
-QtDialog::VectorQtQuery::VectorQtQuery(std::string title, bool _check,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::VectorQuery(title,_check),
+QtDialog::VectorQtQuery::VectorQtQuery(Parameter<Vector> &param, std::string title, bool _check,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::VectorQuery(param, title,_check),
     parent(_parent)
 {
+  if (!param.isSet())
+    param.set(Vector(0,0,0));
   mainLayout= new QHBoxLayout();
   titleLabel = new QLabel(QString(getTitle().c_str()));
@@ -45,4 +47,5 @@
   coordInputX = new QDoubleSpinBox();
   coordInputX->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
+  coordInputX->setValue(param.get()[0]);
 //  coordInputX->setRange(0,M.at(i,i));
   coordInputX->setDecimals(3);
@@ -50,4 +53,5 @@
   coordInputY = new QDoubleSpinBox();
   coordInputY->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
+  coordInputY->setValue(param.get()[1]);
 //  coordInputY->setRange(0,M.at(i,i));
   coordInputY->setDecimals(3);
@@ -55,8 +59,9 @@
   coordInputZ = new QDoubleSpinBox();
   coordInputZ->setRange(-std::numeric_limits<double>::max(),std::numeric_limits<double>::max());
+  coordInputZ->setValue(param.get()[2]);
 //  coordInputZ->setRange(0,M.at(i,i));
   coordInputZ->setDecimals(3);
   coordLayout->addWidget(coordInputZ);
-  pipe = new VectorQtQueryPipe(&(tmp),_dialog,inputBox);
+  pipe = new VectorQtQueryPipe(tmp,_dialog,inputBox);
   //pipe->update(coordInput->value());
   connect(coordInputX,SIGNAL(valueChanged(double)),pipe,SLOT(updateX(double)));
Index: src/UIElements/Qt4/Query/VectorsQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/VectorsQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/VectorsQtQuery.cpp	(revision bd81f9550d144dc810bf910fa44f3c8249361651)
@@ -29,6 +29,6 @@
 
 
-QtDialog::VectorsQtQuery::VectorsQtQuery(std::string title, bool _check,QBoxLayout *_parent,QtDialog *_dialog) :
-    Dialog::VectorsQuery(title,_check),
+QtDialog::VectorsQtQuery::VectorsQtQuery(Parameter<std::vector<Vector> > &param, std::string title, bool _check,QBoxLayout *_parent,QtDialog *_dialog) :
+    Dialog::VectorsQuery(param, title,_check),
     parent(_parent)
 {
@@ -47,5 +47,5 @@
   coordInput->setDecimals(3);
   coordLayout->addWidget(coordInput);
-  pipe = new VectorsQtQueryPipe(&(tmp),_dialog,inputBox);
+  pipe = new VectorsQtQueryPipe(tmp,_dialog,inputBox);
   //pipe->update(coordInput->value());
   connect(coordInput,SIGNAL(valueChanged(double)),pipe,SLOT(update(double)));
