Index: src/UIElements/Dialog.cpp
===================================================================
--- src/UIElements/Dialog.cpp	(revision 957c4236611c50354d1be29ba7a8f0bd3c17e8e7)
+++ src/UIElements/Dialog.cpp	(revision 5a72431ddcfef19d649bae76105e9be7c354b7aa)
@@ -129,2 +129,15 @@
   *target = *tmp;
 }
+
+// Element Queries
+Dialog::ElementQuery::ElementQuery(std::string title, element **_target) :
+  Query(title),
+  target(_target),
+  tmp(0)
+  {}
+
+Dialog::ElementQuery::~ElementQuery(){}
+
+void Dialog::ElementQuery::setResult(){
+  *target=tmp;
+}
Index: src/UIElements/Dialog.hpp
===================================================================
--- src/UIElements/Dialog.hpp	(revision 957c4236611c50354d1be29ba7a8f0bd3c17e8e7)
+++ src/UIElements/Dialog.hpp	(revision 5a72431ddcfef19d649bae76105e9be7c354b7aa)
@@ -15,4 +15,5 @@
 class molecule;
 class Vector;
+class element;
 
 class Dialog
@@ -27,4 +28,5 @@
   virtual void queryMolecule(const char*,molecule**,MoleculeListClass*)=0;
   virtual void queryVector(const char*,Vector *,const double *const,bool)=0;
+  virtual void queryElement(const char*,element **)=0;
 
   virtual bool display();
@@ -45,5 +47,5 @@
   public:
     Query(std::string _title);
-    ~Query();
+    virtual ~Query();
     virtual bool handle()=0;
     virtual void setResult()=0;
@@ -58,5 +60,5 @@
   public:
     IntQuery(std::string title,int *_target);
-    ~IntQuery();
+    virtual ~IntQuery();
     virtual bool handle()=0;
     virtual void setResult();
@@ -70,5 +72,5 @@
   public:
     DoubleQuery(std::string title,double *_target);
-    ~DoubleQuery();
+    virtual ~DoubleQuery();
     virtual bool handle()=0;
     virtual void setResult();
@@ -82,5 +84,5 @@
   public:
     StringQuery(std::string title,std::string *_target);
-    ~StringQuery();
+    virtual ~StringQuery();
     virtual bool handle()=0;
     virtual void setResult();
@@ -95,5 +97,5 @@
   public:
     MoleculeQuery(std::string title, molecule **_target, MoleculeListClass *_molecules);
-    ~MoleculeQuery();
+    virtual ~MoleculeQuery();
     virtual bool handle()=0;
     virtual void setResult();
@@ -108,5 +110,5 @@
   public:
       VectorQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check);
-      ~VectorQuery();
+      virtual ~VectorQuery();
       virtual bool handle()=0;
       virtual void setResult();
@@ -119,4 +121,16 @@
   };
 
+  class ElementQuery : public Query {
+  public:
+    ElementQuery(std::string title, element**_target);
+    virtual ~ElementQuery();
+    virtual bool handle()=0;
+    virtual void setResult();
+  protected:
+    element *tmp;
+  private:
+    element **target;
+  };
+
 void registerQuery(Query* query);
 
Index: src/UIElements/TextDialog.cpp
===================================================================
--- src/UIElements/TextDialog.cpp	(revision 957c4236611c50354d1be29ba7a8f0bd3c17e8e7)
+++ src/UIElements/TextDialog.cpp	(revision 5a72431ddcfef19d649bae76105e9be7c354b7aa)
@@ -10,4 +10,6 @@
 #include "UIElements/TextDialog.hpp"
 
+#include "World.hpp"
+#include "periodentafel.hpp"
 #include "atom.hpp"
 #include "molecule.hpp"
@@ -45,4 +47,8 @@
 void TextDialog::queryVector(const char* title, Vector *target,const double *const cellSize, bool check) {
   registerQuery(new VectorTextQuery(title,target,cellSize,check));
+}
+
+void TextDialog::queryElement(const char* title, element **target){
+  registerQuery(new ElementTextQuery(title,target));
 }
 
@@ -113,4 +119,22 @@
 
 bool TextDialog::VectorTextQuery::handle() {
+ Log() << Verbose(0) << getTitle();
  tmp->AskPosition(cellSize,check);
+ return true;
 }
+
+
+TextDialog::ElementTextQuery::ElementTextQuery(std::string title, element **target) :
+    Dialog::ElementQuery(title,target)
+{}
+
+TextDialog::ElementTextQuery::~ElementTextQuery()
+{}
+
+bool TextDialog::ElementTextQuery::handle() {
+  int Z;
+  Log() << Verbose(0) << getTitle();
+  cin >> Z;
+  tmp = World::get()->getPeriode()->FindElement(Z);
+  return tmp;
+}
Index: src/UIElements/TextDialog.hpp
===================================================================
--- src/UIElements/TextDialog.hpp	(revision 957c4236611c50354d1be29ba7a8f0bd3c17e8e7)
+++ src/UIElements/TextDialog.hpp	(revision 5a72431ddcfef19d649bae76105e9be7c354b7aa)
@@ -24,4 +24,5 @@
   virtual void queryMolecule(const char*,molecule**,MoleculeListClass*);
   virtual void queryVector(const char*,Vector *,const double * const,bool);
+  virtual void queryElement(const char*,element **);
 
 protected:
@@ -30,5 +31,5 @@
   public:
     IntTextQuery(std::string title, int *_target);
-    ~IntTextQuery();
+    virtual ~IntTextQuery();
     virtual bool handle();
   };
@@ -37,5 +38,5 @@
   public:
     DoubleTextQuery(std::string title, double *_target);
-    ~DoubleTextQuery();
+    virtual ~DoubleTextQuery();
     virtual bool handle();
   };
@@ -44,5 +45,5 @@
   public:
     StringTextQuery(std::string title, std::string *_target);
-    ~StringTextQuery();
+    virtual ~StringTextQuery();
     virtual bool handle();
   };
@@ -51,5 +52,5 @@
   public:
     MoleculeTextQuery(std::string title, molecule **_target, MoleculeListClass *_molecules);
-    ~MoleculeTextQuery();
+    virtual ~MoleculeTextQuery();
     virtual bool handle();
   };
@@ -58,5 +59,12 @@
   public:
     VectorTextQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check);
-    ~VectorTextQuery();
+    virtual ~VectorTextQuery();
+    virtual bool handle();
+  };
+
+  class ElementTextQuery : public Dialog::ElementQuery {
+  public:
+    ElementTextQuery(std::string title, element **_target);
+    virtual ~ElementTextQuery();
     virtual bool handle();
   };
Index: src/unittests/Makefile.am
===================================================================
--- src/unittests/Makefile.am	(revision 957c4236611c50354d1be29ba7a8f0bd3c17e8e7)
+++ src/unittests/Makefile.am	(revision 5a72431ddcfef19d649bae76105e9be7c354b7aa)
@@ -30,5 +30,5 @@
   CacheableTest \
   DescriptorUnittest \
-  manipulateAtomsTest \ 
+  manipulateAtomsTest \
   atomsCalculationTest \
   ${MENUTESTS}
