Index: src/Actions/unittests/stubs/DummyUI.hpp
===================================================================
--- src/Actions/unittests/stubs/DummyUI.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/Actions/unittests/stubs/DummyUI.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -43,4 +43,5 @@
   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 = ""){}
 };
Index: src/UIElements/CommandLineUI/CommandLineDialog.cpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineDialog.cpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/CommandLineUI/CommandLineDialog.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -116,4 +116,8 @@
 }
 
+void CommandLineDialog::queryFiles(const char* title, std::string _description){
+  registerQuery(new FilesCommandLineQuery(title, _description));
+}
+
 void CommandLineDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string _description){
   registerQuery(new RandomNumberDistribution_ParametersCommandLineQuery(title, _description));
Index: src/UIElements/CommandLineUI/CommandLineDialog.hpp
===================================================================
--- src/UIElements/CommandLineUI/CommandLineDialog.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/CommandLineUI/CommandLineDialog.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -53,4 +53,5 @@
   virtual void queryElements(const char*, std::string = "");
   virtual void queryFile(const char*, std::string = "");
+  virtual void queryFiles(const char*, std::string = "");
   virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = "");
 protected:
@@ -68,4 +69,5 @@
   class EmptyCommandLineQuery;
   class FileCommandLineQuery;
+  class FilesCommandLineQuery;
   class IntCommandLineQuery;
   class IntsCommandLineQuery;
Index: src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp
===================================================================
--- src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/CommandLineUI/Query/CommandLineQuery.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -157,4 +157,11 @@
 };
 
+class CommandLineDialog::FilesCommandLineQuery : public Dialog::FilesQuery {
+public:
+  FilesCommandLineQuery(std::string title, std::string _description = "");
+  virtual ~FilesCommandLineQuery();
+  virtual bool handle();
+};
+
 class CommandLineDialog::RandomNumberDistribution_ParametersCommandLineQuery : public Dialog::RandomNumberDistribution_ParametersQuery {
 public:
Index: src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp
===================================================================
--- src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -0,0 +1,42 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C) 2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * FilesCommandLineQuery.cpp
+ *
+ *  Created on: May 21, 2012
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "CommandLineUI/Query/CommandLineQuery.hpp"
+#include "CommandLineUI/CommandLineParser.hpp"
+#include "CodePatterns/Log.hpp"
+#include "CodePatterns/Verbose.hpp"
+
+CommandLineDialog::FilesCommandLineQuery::FilesCommandLineQuery(std::string title, std::string _description) :
+    Dialog::FilesQuery(title, _description)
+{}
+
+CommandLineDialog::FilesCommandLineQuery::~FilesCommandLineQuery() {}
+
+bool CommandLineDialog::FilesCommandLineQuery::handle() {
+  if (CommandLineParser::getInstance().vm.count(getTitle())) {
+    tmp = CommandLineParser::getInstance().vm[getTitle()].as< std::vector<boost::filesystem::path> >();
+    return true;
+  } else {
+    ELOG(1, "CommandLineUI parsing error: Missing string for " << getTitle() << ".");
+    return false;
+  }
+}
+
Index: src/UIElements/Dialog.cpp
===================================================================
--- src/UIElements/Dialog.cpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/Dialog.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -196,4 +196,9 @@
 }
 
+template <> void Dialog::query< std::vector<boost::filesystem::path> >(const char *token, std::string description)
+{
+  queryFiles(token, description);
+}
+
 template <> void Dialog::query< RandomNumberDistribution_Parameters >(const char *token, std::string description)
 {
Index: src/UIElements/Dialog.hpp
===================================================================
--- src/UIElements/Dialog.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/Dialog.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -177,4 +177,5 @@
   virtual void queryElements(const char*, std::string = "")=0;
   virtual void queryFile(const char*, std::string = "")=0;
+  virtual void queryFiles(const char*, std::string = "")=0;
   virtual void queryRandomNumberDistribution_Parameters(const char*, std::string = "")=0;
 
@@ -462,4 +463,14 @@
   };
 
+  class FilesQuery : public Query {
+  public:
+    FilesQuery(std::string title, std::string _description = "");
+    virtual ~FilesQuery();
+    virtual bool handle()=0;
+    virtual void setResult();
+  protected:
+    std::vector<boost::filesystem::path> tmp;
+  };
+
   class RandomNumberDistribution_ParametersQuery : public Query {
   public:
Index: src/UIElements/Makefile.am
===================================================================
--- src/UIElements/Makefile.am	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/Makefile.am	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -12,4 +12,5 @@
   UIElements/CommandLineUI/Query/EmptyCommandLineQuery.cpp \
   UIElements/CommandLineUI/Query/FileCommandLineQuery.cpp \
+  UIElements/CommandLineUI/Query/FilesCommandLineQuery.cpp \
   UIElements/CommandLineUI/Query/IntCommandLineQuery.cpp \
   UIElements/CommandLineUI/Query/IntsCommandLineQuery.cpp \
@@ -81,4 +82,5 @@
   UIElements/TextUI/Query/EmptyTextQuery.cpp \
   UIElements/TextUI/Query/FileTextQuery.cpp \
+  UIElements/TextUI/Query/FilesTextQuery.cpp \
   UIElements/TextUI/Query/IntTextQuery.cpp \
   UIElements/TextUI/Query/IntsTextQuery.cpp \
@@ -130,4 +132,5 @@
   UIElements/Query/EmptyQuery.cpp \
   UIElements/Query/FileQuery.cpp \
+  UIElements/Query/FilesQuery.cpp \
   UIElements/Query/IntQuery.cpp \
   UIElements/Query/IntsQuery.cpp \
@@ -182,4 +185,5 @@
   UIElements/Qt4/Query/EmptyQtQuery.cpp \
   UIElements/Qt4/Query/FileQtQuery.cpp \
+  UIElements/Qt4/Query/FilesQtQuery.cpp \
   UIElements/Qt4/Query/IntQtQuery.cpp \
   UIElements/Qt4/Query/IntsQtQuery.cpp \
Index: src/UIElements/Qt4/QtDialog.cpp
===================================================================
--- src/UIElements/Qt4/QtDialog.cpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/Qt4/QtDialog.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -175,4 +175,9 @@
 }
 
+void QtDialog::queryFiles(const char* title, std::string)
+{
+  registerQuery(new FilesQtQuery(title,inputLayout,this));
+}
+
 void QtDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string)
 {
Index: src/UIElements/Qt4/QtDialog.hpp
===================================================================
--- src/UIElements/Qt4/QtDialog.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/Qt4/QtDialog.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -52,4 +52,5 @@
   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 = "");
 
@@ -69,4 +70,5 @@
   class EmptyQtQuery;
   class FileQtQuery;
+  class FilesQtQuery;
   class IntQtQuery;
   class IntsQtQuery;
Index: src/UIElements/Qt4/Query/FilesQtQuery.cpp
===================================================================
--- src/UIElements/Qt4/Query/FilesQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Qt4/Query/FilesQtQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -0,0 +1,77 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C)  2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * FilesQtQuery.cpp
+ *
+ *  Created on: May 21, 2012
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <Qt/qboxlayout.h>
+#include <Qt/qlabel.h>
+#include <Qt/qlineedit.h>
+#include <Qt/qlistwidget.h>
+#include <Qt/qpushbutton.h>
+
+#include "CodePatterns/MemDebug.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),
+    parent(_parent)
+{
+  QHBoxLayout * thisHLayout = new QHBoxLayout();
+  QVBoxLayout * thisV1Layout = new QVBoxLayout();
+  QVBoxLayout * thisV2Layout = new QVBoxLayout();
+
+  QLabel *titleLabel = new QLabel(QString(getTitle().c_str()));
+  QLabel *inputLabel = new QLabel("Enter to add");
+  QListWidget* inputList = new QListWidget();
+  inputList->setSelectionMode(QAbstractItemView::ExtendedSelection);
+  QLineEdit* inputBox = new QLineEdit();
+  inputLabel->setBuddy(inputBox);
+  titleLabel->setBuddy(inputList);
+  QPushButton* AddButton = new QPushButton("Add");
+  AddButton->setEnabled(false);
+  QPushButton* RemoveButton = new QPushButton("Remove");
+  RemoveButton->setEnabled(false);
+
+  thisV1Layout->addWidget(titleLabel);
+  thisV1Layout->addWidget(inputList);
+  thisV2Layout->addWidget(inputLabel);
+  thisV2Layout->addWidget(inputBox);
+  thisV2Layout->addWidget(AddButton);
+  thisV2Layout->addWidget(RemoveButton);
+  parent->addLayout(thisHLayout);
+  thisHLayout->addLayout(thisV1Layout);
+  thisHLayout->addLayout(thisV2Layout);
+
+  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()));
+  connect(AddButton,SIGNAL(Clicked()),pipe,SLOT(AddValue()));
+  connect(RemoveButton,SIGNAL(Clicked()),pipe,SLOT(RemoveRow()));
+}
+
+QtDialog::FilesQtQuery::~FilesQtQuery()
+{
+  delete pipe;
+}
+
+bool QtDialog::FilesQtQuery::handle(){
+  return true;
+}
+
Index: src/UIElements/Qt4/Query/QtQuery.hpp
===================================================================
--- src/UIElements/Qt4/Query/QtQuery.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/Qt4/Query/QtQuery.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -195,4 +195,21 @@
 };
 
+class QtDialog::FilesQtQuery : public Dialog::FilesQuery {
+public:
+  FilesQtQuery(std::string _title, QBoxLayout *_parent, QtDialog *_dialog);
+  virtual ~FilesQtQuery();
+  virtual bool handle();
+  void IntegerEntered(const QString&);
+  void IntegerSelected();
+  void AddInteger();
+  void RemoveInteger();
+private:
+  QBoxLayout *parent;
+  QBoxLayout *thisLayout;
+  QLabel *titleLabel;
+
+  QtQueryListPipe<boost::filesystem::path> *pipe;
+};
+
 class QtDialog::IntQtQuery : public Dialog::IntQuery {
 public:
Index: src/UIElements/Query/FilesQuery.cpp
===================================================================
--- src/UIElements/Query/FilesQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/Query/FilesQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+/*
+ * FilesQuery.cpp
+ *
+ *  Created on: May 21, 2012
+ *      Author: heber
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include "Dialog.hpp"
+#include "Actions/ValueStorage.hpp"
+
+
+// File Queries
+Dialog::FilesQuery::FilesQuery(std::string title, std::string _description) :
+  Query(title, _description)
+  {}
+
+Dialog::FilesQuery::~FilesQuery(){}
+
+void Dialog::FilesQuery::setResult(){
+  ValueStorage::getInstance().setCurrentValue(title.c_str(), tmp);
+}
+
Index: src/UIElements/TextUI/Query/FilesTextQuery.cpp
===================================================================
--- src/UIElements/TextUI/Query/FilesTextQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
+++ src/UIElements/TextUI/Query/FilesTextQuery.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -0,0 +1,62 @@
+/*
+ * Project: MoleCuilder
+ * Description: creates and alters molecular systems
+ * Copyright (C) 2012 University of Bonn. All rights reserved.
+ * Please see the LICENSE file or "Copyright notice" in builder.cpp for details.
+ */
+
+/*
+ * FilesTextQuery.cpp
+ *
+ *  Created on: May 21, 2012
+ *      Author: heber
+ */
+
+// include config.h
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "CodePatterns/MemDebug.hpp"
+
+#include <iostream>
+#include <string>
+
+#include <boost/filesystem.hpp>
+
+#include "TextUI/Query/TextQuery.hpp"
+
+#include "CodePatterns/Log.hpp"
+#include "CodePatterns/Verbose.hpp"
+
+
+TextDialog::FilesTextQuery::FilesTextQuery(std::string title, std::string _description) :
+    Dialog::FilesQuery(title,_description)
+{}
+
+TextDialog::FilesTextQuery::~FilesTextQuery() {}
+
+bool TextDialog::FilesTextQuery::handle() {
+  std::string tempstring;
+  boost::filesystem::path tempfile;
+  do{
+    std::cout << getDescription() << ": ";
+    std::cin >> tempstring;
+    if (std::cin.fail()) {
+      std::cin.clear();
+      std::cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
+      std::cout << "Input was not a valid string!" << std::endl;
+      continue;
+    }
+    tempfile = tempstring;
+    if (boost::filesystem::exists(tempfile)) {
+      tmp.push_back(tempfile);
+    } else {
+      ELOG(1, "File " << tempstring << " cannot be found.");
+      tempstring = std::string();
+    }
+  } while(tempstring != std::string());
+  std::cin.ignore(std::numeric_limits<streamsize>::max(),'\n');
+  return !tmp.empty();
+}
+
Index: src/UIElements/TextUI/Query/TextQuery.hpp
===================================================================
--- src/UIElements/TextUI/Query/TextQuery.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/TextUI/Query/TextQuery.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -87,4 +87,11 @@
 };
 
+class TextDialog::FilesTextQuery : public Dialog::FilesQuery {
+public:
+  FilesTextQuery(std::string title, std::string _description = NULL);
+  virtual ~FilesTextQuery();
+  virtual bool handle();
+};
+
 class TextDialog::IntTextQuery : public Dialog::IntQuery {
 public:
Index: src/UIElements/TextUI/TextDialog.cpp
===================================================================
--- src/UIElements/TextUI/TextDialog.cpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/TextUI/TextDialog.cpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -114,4 +114,8 @@
 }
 
+void TextDialog::queryFiles(const char* title, std::string description){
+  registerQuery(new FilesTextQuery(title,description));
+}
+
 void TextDialog::queryRandomNumberDistribution_Parameters(const char* title, std::string description){
   registerQuery(new RandomNumberDistribution_ParametersTextQuery(title,description));
Index: src/UIElements/TextUI/TextDialog.hpp
===================================================================
--- src/UIElements/TextUI/TextDialog.hpp	(revision 30438f89e3a449dd812a1126279d816e4403195f)
+++ src/UIElements/TextUI/TextDialog.hpp	(revision 2c5765fc2598fb70685cc0ead59e118f3df88b1c)
@@ -50,4 +50,5 @@
   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 = "");
 
@@ -66,4 +67,5 @@
   class EmptyTextQuery;
   class FileTextQuery;
+  class FilesTextQuery;
   class IntTextQuery;
   class IntsTextQuery;
