Index: code/branches/Dialog_HS17/data/gui/layouts/Dialog.layout
===================================================================
--- code/branches/Dialog_HS17/data/gui/layouts/Dialog.layout	(revision 11642)
+++ code/branches/Dialog_HS17/data/gui/layouts/Dialog.layout	(revision 11644)
@@ -31,16 +31,10 @@
             </Window>
 
-            <Window Type="MenuWidgets/StaticText" Name="orxonox/DialogAns" >
-                <Property Name="InheritsAlpha" Value="False" />
-                <Property Name="HorzFormatting" Value="HorzCentred" />
+            <Window Type="MenuWidgets/Listbox" Name="orxonox/AnsListbox" >
                 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-                <Property Name="VertFormatting" Value="TopAligned" />
-                <Property Name="UnifiedAreaRect" Value="{{0.604166,0},{0.15,0},{0.958333,0},{0.636,0}}" />
-                <Window Type="MenuWidgets/Listbox" Name="orxonox/AnsListbox" >
-                    <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-                    <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.225,0},{0.95,0},{0.92,0}}" />
-                    <Event Name="ItemSelectionChanged" Function="Dialog.answer_changed" />
-                </Window>
+                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.225,0},{0.95,0},{0.85,0}}" />
+                <Event Name="ItemSelectionChanged" Function="Dialog.answer_changed" />
             </Window>
+        
             <Window Type="MenuWidgets/Button" Name="orxonox/SayButton" >
                 <Property Name="Text" Value="Say" />
Index: code/branches/Dialog_HS17/data/gui/scripts/Dialog.lua
===================================================================
--- code/branches/Dialog_HS17/data/gui/scripts/Dialog.lua	(revision 11642)
+++ code/branches/Dialog_HS17/data/gui/scripts/Dialog.lua	(revision 11644)
@@ -6,16 +6,11 @@
 P.detailsWindows = {}
 P.showing = false
+P.choice = 0
 
--- Design parameters
-P.imageHeight = 50
-P.detailImageSize = 100
-P.textHeight = 50
-P.buttonWidth = 50
-
-function P.onLoad()
+function P.onLoad() --wird ausgefuert wenn Fenster geladen
     P.wrapper = nil
 end
 
-function P.onShow()
+function P.onShow() --wird ausgefuert wenn Dialogfenster gezeigt
 
     orxonox.CommandExecutor:execute("setTimeFactor 0")
@@ -25,5 +20,5 @@
 end
 
-function P.onHide()
+function P.onHide() --aufgefuert wenn Fenster geschlossen wird
     orxonox.CommandExecutor:execute("setTimeFactor 1")
     P.showing = false
@@ -31,5 +26,5 @@
 end
 
-function P.createDialog()
+function P.createDialog() -- initiallisiert das Dialog Fenster, setzt Namen sowie die erste Frage mit enstprechenden Antworten
 
     local manager = orxonox.DialogManager:getInstance()
@@ -44,21 +39,15 @@
     questionfiled:setText(question)
 
-    listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    local listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    CEGUI.toListbox(listboxwindow):resetList()
 
-    local themeList = {}
-    --[[
-    table.insert(themeList, "Default")
-    table.insert(themeList, "Drum n' Bass")
-    table.insert(themeList, "8-Bit Style")
-    table.insert(themeList, "Corny Jazz")
-    table.insert(themeList, "Metal")
-    --]]
+    local ansList = {}
     local anssize = manager:getSize()
 
     for index = 0, anssize -1, 1 do
-        table.insert(themeList, manager:getAnswer(index))
+        table.insert(ansList, manager:getAnswer(index))
     end  
 
-    for k,v in pairs(themeList) do
+    for k,v in pairs(ansList) do
         item = CEGUI.createListboxTextItem(v)
         item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
@@ -67,20 +56,44 @@
 end
 
-function P.updateDialog()
+function P.updateDialog()   --updated den Dialog entsprechend der Ausgeaehlten option der letzten Frage, setzt Frage und Antwortmoeglichkeiten neu
     local manager = orxonox.DialogManager:getInstance()
-    --manager:update()
+    manager:update(P.choice)
 
     local questionfiled = winMgr:getWindow("orxonox/Dialog/Question")
     local question = manager:getQuestion()
     questionfiled:setText(question)
+
+    local listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    listboxwindow:resetList()
+
+    local ansList = {}
+    local anssize = manager:getSize()
+
+    for index = 0, anssize -1, 1 do
+        table.insert(ansList, manager:getAnswer(index))
+    end  
+
+    for k,v in pairs(ansList) do
+        item = CEGUI.createListboxTextItem(v)
+        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+        CEGUI.toListbox(listboxwindow):addItem(item)
+    end
+
+    P.choice = 0
 end
 
-function P.answer_changed(e)
-    -- body
+function P.answer_changed(e)    --wird aufgerufen falls Auswahl geaendert wird und setzt enstprechenden Indexparameter  
+    listboxwindow = winMgr:getWindow("orxonox/AnsListbox")
+    selection = listboxwindow:getFirstSelectedItem()
+    if selection ~= nil then
+    P.choice = listboxwindow:getItemIndex(selection)
+    else 
+        P.choice = 0
+    end
 end
 
 
-function P.cleanup(destroyDetails)
-    
+function P.cleanup(destroyDetails)  --loest Fenster wieder auf (!nicht selbst geschrieben, nur uebernommen, eventuell nicht noetiger code)
+
     if P.wrapper ~= nil then
         winMgr:destroyWindow(P.wrapper)
@@ -101,12 +114,9 @@
 
 
-function P.Button_clicked(e)
-    local ending = orxonox.DialogManager:getInstance():endtest()
-    orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialog")
+function P.Button_clicked(e)    --wird bei click auf say knopf ausgeloest, entscheidet ob Dialog schliesst oder updated und fuert entsprechen aus
+    local ending = orxonox.DialogManager:getInstance():endtest(P.choice)
     
     if ending then
         orxonox.CommandExecutor:execute("OrxonoxOverlay toggleVisibility Dialog")
-    
-    
     else 
         P.updateDialog(index)
Index: code/branches/Dialog_HS17/data/levels/DialogueShowcase2.oxw
===================================================================
--- code/branches/Dialog_HS17/data/levels/DialogueShowcase2.oxw	(revision 11642)
+++ code/branches/Dialog_HS17/data/levels/DialogueShowcase2.oxw	(revision 11644)
@@ -1,4 +1,4 @@
 <LevelInfo
- name = "DialogueShowcase2"
+ name = "DialogShowase"
  description = "A level to show and test the functionality of the Dialogue module."
  tags = "test"
@@ -32,10 +32,23 @@
     <Backlight position="100,0,100" visible=true frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,0,1"/>
     
-    <Dialog name="Kurt" currentQuestionId="loop">
+    <Dialog name="Kurt" currentQuestionId="loop1">
       <questions>
-        <Question question="Soll ich dich loopen?" Id="loop">
+        <Question question="Soll ich dich einmal loopen?" Id="loop1">
           <answerIds>
             <AnswerId Id="ja"/>
             <AnswerId Id="nein"/>
+            <AnswerId Id="giveItToMe"/>
+          </answerIds>
+        </Question>
+        <Question question="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua." Id="lorem">
+          <answerIds>
+            <AnswerId Id="end"/>
+          </answerIds>
+        </Question>
+        <Question question="Soll ich dich nochmal loopen?" Id="loop2">
+          <answerIds>
+            <AnswerId Id="ja"/>
+            <AnswerId Id="nein"/>
+            <AnswerId Id="end"/>
           </answerIds>
         </Question>
@@ -43,6 +56,8 @@
       </questions>
       <answers>
-        <Answer Id="ja" answer="ja loop mich" nextQuestionId="loop"/>
+        <Answer Id="giveItToMe" answer="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." nextQuestionId="lorem"/>
+        <Answer Id="ja" answer="ja loop mich" nextQuestionId="loop2"/>
         <Answer Id="nein" answer="lieber nicht" nextQuestionId="ok"/>
+        <Answer Id="end" answer="ich geh dann mal" nextQuestionId=""/>
       </answers>
       <events>
@@ -52,27 +67,5 @@
       </events>
     </Dialog>
-
-    <DistanceTrigger name="test1" position="100,0,-100" target="Pawn" distance=25 stayActive="true" />
-    <Backlight position="100,0,-100" visible=true frequency=0.6 amplitude=3 material="Flares/lensflare" colour="1,1,1"/>
     
-    <NextQuestion  question="Hey,  sorry to bother you,  could you help me with something?" a1="Yeah sure." a2="Nope get lost." >
-     <possibleQuestions> 
-        <NextQuestion  question="Do you like fish" a1="...yes?" a2="This is wasting my time." >
-        <possibleQuestions>
-          <NextQuestion  question="Splendid! Would you like your ship to look like one?" a1="..." a2="I'm going now,  okay?" />
-          <NextQuestion  question="Turtles then?" a1="..." a2="Im going now,  okay?" />
-        </possibleQuestions>
-        </NextQuestion>
-        <NextQuestion  question="I can pay you know." a1="Got enough money." a2="...are you deaf? Bye."/>
-      </possibleQuestions>    
-      <events>
-        <execute>
-           <EventListener event="test1" />
-        </execute>
-      </events>
-    </NextQuestion>
-
-    
-
     <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
     <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
Index: code/branches/Dialog_HS17/src/modules/dialog/Answer.cc
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/Answer.cc	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/Answer.cc	(revision 11644)
@@ -23,28 +23,29 @@
 	}
 
-	void Answer::setAnswerId(std::string answerId){
+	void Answer::setAnswerId(const std::string& answerId){
 		this->answerId_ = answerId;
 	}
 
-	std::string Answer::getAnswerId(){
+	const std::string& Answer::getAnswerId() const
+	{
 		return this->answerId_;
 	}
 
-	void Answer::setNextQuestion(std::string nextId)
+	void Answer::setNextQuestion(const std::string& nextId)
 	{
 		this->nextQuestionId_ = nextId;
 	}
 
-	std::string Answer::getNextQuestion()
+	const std::string& Answer::getNextQuestion() const
 	{
 		return this->nextQuestionId_;
 	}
 
-	void Answer::setAnswer(std::string answer)
+	void Answer::setAnswer(const std::string& answer)
 	{
 		this->answer_ = answer;
 	}
 
-	std::string Answer::getAnswer()
+	const std::string& Answer::getAnswer() const
 	{
 		return this->answer_;
Index: code/branches/Dialog_HS17/src/modules/dialog/Answer.h
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/Answer.h	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/Answer.h	(revision 11644)
@@ -18,12 +18,12 @@
 			virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
 
-			void setAnswerId(std::string answerId); 
-			std::string getAnswerId();
+			void setAnswerId(const std::string& answerId); //xmlPort-Funktion, setzt AntwortId
+			const std::string& getAnswerId() const;	//xmlPort-Funktion,	gibt AntwortId
 
-			void setNextQuestion(std::string nextId); // "end" um den dialog zu beenden
-			std::string getNextQuestion();
+			void setNextQuestion(const std::string& nextId); //xmlPort-Funktion, um Dialog zu beenden tag benutzen der von keiner Frage benutzt wird
+			const std::string& getNextQuestion() const;	//xmlPort-Funktion, gibt Id der Folgefrage
 
-			void setAnswer(std::string awns);
-			std::string getAnswer();
+			void setAnswer(const std::string& awns);	//xmlPort-Funktion, setzt Antworttext
+			const std::string& getAnswer() const;	//xmlPort-Funktion,	gibt Antworttext
 
 		private:
Index: code/branches/Dialog_HS17/src/modules/dialog/AnswerId.cc
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/AnswerId.cc	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/AnswerId.cc	(revision 11644)
@@ -19,10 +19,10 @@
 	}
 
-	void AnswerId::setId(std::string id)
+	void AnswerId::setId(const std::string& id)
 	{
 		this->id_ = id;
 	}
 	
-	std::string AnswerId::getId()
+	const std::string& AnswerId::getId() const
 	{
 		return this->id_;
Index: code/branches/Dialog_HS17/src/modules/dialog/AnswerId.h
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/AnswerId.h	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/AnswerId.h	(revision 11644)
@@ -16,6 +16,6 @@
 			virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
 
-            void setId(std::string Id);
-            std::string getId();
+            void setId(const std::string& Id);	//allows to set Id, only use in xmlPort for initializing AnswerIds in lvl files
+            const std::string& getId() const;	//allows to get Id, used in xmlPort
 
 		private: 
Index: code/branches/Dialog_HS17/src/modules/dialog/Dialog.cc
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/Dialog.cc	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/Dialog.cc	(revision 11644)
@@ -35,20 +35,20 @@
     }
 
-	void Dialog::setName(std::string name)
+	void Dialog::setName(const std::string& name)
 	{
 		this->name_ = name;
 	}
 
-	std::string Dialog::getName() 
+	const std::string& Dialog::getName() const 
 	{
 		return this->name_;
 	}
 
-	void Dialog::setCurrentQuestionId(std::string questionId)
+	void Dialog::setCurrentQuestionId(const std::string& questionId)
 	{
 		this->currentQuestionId_ = questionId;
 	}
 
-	std::string Dialog::getCurrentQuestionId()
+	const std::string& Dialog::getCurrentQuestionId() const
 	{
 		return this->currentQuestionId_;
@@ -61,4 +61,9 @@
 	}
 
+	const Question* Dialog::getQuestion() const // returned nichts
+	{
+		return nullptr;
+	}
+
 	void Dialog::addAnswer(Answer* answer) //fuegt Answer der Map hinzu
 	{
@@ -66,22 +71,15 @@
 	}
 
-	Question* Dialog::getQuestion(unsigned int index) const // returned nichts
+	const Answer* Dialog::getAnswer(unsigned int index) const	//returned sting der Antwort zur Id.
 	{
 		return nullptr;
-		// Question question = (questions_.find(this->currentQuestionId_))->second;
-		// return question.getQuestion();
 	}
 
-	Answer* Dialog::getAnswer(unsigned int index) const	//returned sting der Antwort zur Id.
-	{
-		return nullptr;
-		// return (this->answers_.find(answerId))->second.getAnswer();
-	}
 
-	std::vector<std::string>* Dialog::getAnswerIds() // returned vector mit allen momentanen AntwortenIds
+	const std::vector<std::string>* Dialog::getAnswerIds() // returned vector mit allen momentanen AntwortenIds
 	{
 		
 		Question* question = (this->questions_.find(this->currentQuestionId_))->second;
-		std::vector<std::string>* answers = question->getAnswerIds();
+		const std::vector<std::string>* answers = question->getAnswerIds();
 		return answers;
 		
@@ -103,25 +101,21 @@
     }
 
-    void Dialog::update(std::string givenAnswer)
+    void Dialog::update(const std::string& givenAnswerId)
     {
-    	Answer* answer = (answers_.find(givenAnswer))->second;
+    	Answer* answer = (answers_.find(givenAnswerId))->second;
     	this->currentQuestionId_ = answer->getNextQuestion();
     }
 
-    bool Dialog::ending() //retruned true wenn die Id der Antwort end ist oder keine Antworten auf die frage eingetragen sind
+    bool Dialog::ending(const std::string& givenAnswerId)
     {
-    	bool end = false;
-    	if ((this->questions_.find(this->currentQuestionId_)->second)->getAnswerIds()->empty()){
-    		end = true;
-    	}	
-    	return end;
+    	return !this->questions_.count(this->answers_.find(givenAnswerId)->second->getNextQuestion());
     }
 
-	std::string Dialog::getQuestionString()
+	const std::string& Dialog::getQuestionString()
 	{
 		return this->questions_.find(this->currentQuestionId_)->second->getQuestion();
 	}
 
-	std::string Dialog::getAnswerString(std::string answerId)
+	const std::string& Dialog::getAnswerString(std::string answerId)
 	{
 		return this->answers_.find(answerId)->second->getAnswer();
Index: code/branches/Dialog_HS17/src/modules/dialog/Dialog.h
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/Dialog.h	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/Dialog.h	(revision 11644)
@@ -24,25 +24,27 @@
 			virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
 
-			void setName(std::string name);
-			std::string getName();
+			void setName(const std::string& name);	//xmlPort-Funktion, setzt Namen
+			const std::string& getName() const;	//xmlPort-Funktion, returnt Namen
 
-			void setCurrentQuestionId(std::string questionId);
-			std::string getCurrentQuestionId();
+			void setCurrentQuestionId(const std::string& questionId);	//xmlPort-Funktion, setzt string Id der momentanen Frage
+			const std::string& getCurrentQuestionId() const;	//xmlPort-Funktion, gibt Id der momentanen Frage
 
-			void addQuestion(Question* question); //fuegt Question der Map hinzu
-			void addAnswer(Answer* answer); //fuegt Answer der Map hinzu
+			void addQuestion(Question* question); //xmlPort-Funktion, fuegt Question der Map hinzu
+			const Question* getQuestion() const; //xmlPort-Funktion, returnt nullptr
 
-			Question* getQuestion(unsigned int index) const; // // benoetigt fuer xmlPort
-			Answer* getAnswer(unsigned int index) const; // benoetigt fuer xmlPort
-			std::vector<std::string>* getAnswerIds(); 	// returned vector mit allen momentanen AntwortenIds
+			void addAnswer(Answer* answer); //xmlPort-Funktion, fuegt Answer der Map hinzu
+			const Answer* getAnswer(unsigned int index) const; //xmlPort-Funktion, returnt nullptr
 
-	 		bool execute(bool bTriggered, BaseObject* trigger);
 
-			void update(std::string givenAnswer);
+			const std::vector<std::string>* getAnswerIds(); 	// returned Pointer auf Vector mit allen momentanen AntwortenIds
 
-			bool ending(); //retruned true wenn die Id der Antwort end ist oder keine Antworten auf die frage eingetragen sind
+	 		bool execute(bool bTriggered, BaseObject* trigger); // funktion die aufgerufen wird wenn der im xml verbundene Trigger aktiviert wird
 
-			std::string getQuestionString(); //gibt string der momentanen Frage 
-			std::string getAnswerString(std::string answerId); //gibt string der zur Id passenden Frage
+			void update(const std::string& givenAnswerId);	//setzt die naechste Frage entsprechend der gegebenen antwortId
+
+			bool ending(const std::string& givenAnswerId); //ist true falls fuer die gegebene AntwortId keine Frage zur FragenId der Antwort existiert 
+
+			const std::string& getQuestionString(); //gibt string der momentanen Frage 
+			const std::string& getAnswerString(std::string answerId); //gibt string der zur Id passenden Frage
 
 		private: 
Index: code/branches/Dialog_HS17/src/modules/dialog/DialogManager.cc
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/DialogManager.cc	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/DialogManager.cc	(revision 11644)
@@ -29,5 +29,5 @@
     int DialogManager::getSize()
     {   
-        return 2; //return this->answerIds_->size();
+        return this->answerIds_->size();
     }
 
@@ -42,7 +42,15 @@
     }
 
-    bool DialogManager::endtest()
-    {
-    	return this->currentTalk_->ending();
+    bool DialogManager::endtest(int index)
+    {   
+        if(this->answerIds_->empty())
+        {
+            return true;
+        }
+        else 
+        {
+            return this->currentTalk_->ending(this->answerIds_->at(index));
+        }
+
     }
 
Index: code/branches/Dialog_HS17/src/modules/dialog/DialogManager.h
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/DialogManager.h	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/DialogManager.h	(revision 11644)
@@ -22,16 +22,28 @@
         DialogManager(); 
         
-
+        //gibt lua den pointer auf den Manager
         static DialogManager& getInstance() { return Singleton<DialogManager>::getInstance(); } //tolua_export
 
+        //setzt den momentanen Dialog auf den uebergebenen, wird vom Dialog verwendet um bei Trigger event sich selbst zu setzen
         void setDialog(Dialog* dialog);
 
-        //from here on luafunctionality is declared
+        //von hier an sind lua funktionalitaeten definiert
 
+        //gibt den string der momentanen Frage des Dialogs
         std::string getQuestion(); //tolua_export
+
+        //gibt die laenge des Antwort-arrays der momentanen zuruek, 0 falls es leer ist
         int getSize(); //tolua_export
+
+        //gibt den sting zu einer Frage im antwortarray der momentanen Frage
         std::string getAnswer(int index); //tolua_export
+
+        //gibt den Namen der Person mit der man spricht
         std::string getPerson(); //tolua_export
-        bool endtest(); //tolua_export
+
+        //testet ob der dialog weiter geht, true wenn es keine weitere Frage nach der Antwort kommt oder keine Antwort zur Frage existiert
+        bool endtest(int index); //tolua_export
+
+        //updated den Dialog so dass er auf die Antwort die im Antwortvector am index steht reagiert
         void update(int index); //tolua_export
 
@@ -40,5 +52,5 @@
 
     Dialog* currentTalk_;
-    std::vector<std::string>* answerIds_;
+    const std::vector<std::string>* answerIds_;
 
     };//tolua_export
Index: code/branches/Dialog_HS17/src/modules/dialog/Question.cc
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/Question.cc	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/Question.cc	(revision 11644)
@@ -22,20 +22,20 @@
 	}
 
-	void Question::setQuestionId(std::string Id)
+	void Question::setQuestionId(const std::string& Id)
 	{
 		this->questionId_ = Id;
 	}
 
-	std::string Question::getQuestionId()
+	const std::string& Question::getQuestionId() const
 	{
 		return this->questionId_;
 	}
 
-	void Question::setQuestion(std::string question)
+	void Question::setQuestion(const std::string& question)
 	{
 		this->question_ = question;
 	}
 
-	std::string Question::getQuestion()
+	const std::string& Question::getQuestion() const
 	{
 		return this->question_;
@@ -47,10 +47,10 @@
 	}
 
-	AnswerId* Question::getAnswerId(unsigned int index) const
+	const AnswerId* Question::getAnswerId() const
 	{
 		return nullptr;
 	}
 
-	std::vector<std::string>* Question::getAnswerIds()
+	const std::vector<std::string>* Question::getAnswerIds()
 	{
 		return &(this->answerIds_);
Index: code/branches/Dialog_HS17/src/modules/dialog/Question.h
===================================================================
--- code/branches/Dialog_HS17/src/modules/dialog/Question.h	(revision 11642)
+++ code/branches/Dialog_HS17/src/modules/dialog/Question.h	(revision 11644)
@@ -20,18 +20,14 @@
 			virtual void XMLPort(Element& xmelement, XMLPort::Mode mode);
 
-			void setQuestionId(std::string Id);
-			std::string getQuestionId();
+			void setQuestionId(const std::string& Id);	//xmlPort-Funktion, setzt Id
+			const std::string& getQuestionId() const;	//xmlPort-Funktion, gibt Id string zuruek
 
-			void setQuestion(std::string question);
-			std::string getQuestion();
+			void setQuestion(const std::string& question);	//xmlPort-Funktion, setzt Fragen string
+			const std::string& getQuestion() const;	//xmlPort-Funktion, gibt Fragen string
 
-			void addAnswerId(AnswerId* answerId); //leer lassen um Dialog zu beenden
-			AnswerId* getAnswerId(unsigned int index) const;
+			void addAnswerId(AnswerId* answerId); 	//xmlPort-Funktion, nimmt AnswerIds von entsprechenden Objekten und fuegt sie in List ein.
+			const AnswerId* getAnswerId() const;	//xmlPort-Funktion, gibt nichts zuruek
 
-			
-			//braucht es getAnswerId oder reicht es andere funktion anzugeben,
-			// die sowieso gebraucht wird?
-
-			std::vector<std::string>* getAnswerIds(); //returnt vektor mit allen Ids
+			const std::vector<std::string>* getAnswerIds(); //returnt Pointer auf Vektor mit allen Ids
 
 
