Index: code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc	(revision 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc	(revision 11750)
@@ -89,7 +89,14 @@
 	}
 
-	const Question* Dialog::getQuestion() const // returned nichts
+	Question* Dialog::getQuestion(unsigned int index) const
 	{
-		return nullptr;
+        unsigned int i = 0;
+        for (auto entry : this->questions_)
+        {
+            if (i == index)
+                return entry.second;
+            ++i;
+        }
+        return nullptr;
 	}
 
@@ -99,16 +106,22 @@
 	}
 
-	const Answer* Dialog::getAnswer(unsigned int index) const	//returned sting der Antwort zur Id.
+	Answer* Dialog::getAnswer(unsigned int index) const
 	{
-		return nullptr;
+        unsigned int i = 0;
+        for (auto entry : this->answers_)
+        {
+            if (i == index)
+                return entry.second;
+            ++i;
+        }
+        return nullptr;
 	}
 
 
-	const std::vector<std::string>* Dialog::getAnswerIds() // returned vector mit allen momentanen AntwortenIds
+	const std::vector<std::string>& Dialog::getAnswerIds() const // returned vector mit allen momentanen AntwortenIds
 	{
 		
 		Question* question = (this->questions_.find(this->currentQuestionId_))->second;
-		const std::vector<std::string>* answers = question->getAnswerIds();
-		return answers;
+		return question->getAnswerIds();
 		
 	} 
@@ -145,5 +158,5 @@
 	}
 
-	const std::string& Dialog::getAnswerString(std::string answerId)
+	const std::string& Dialog::getAnswerString(const std::string& answerId)
 	{
 		return this->answers_.find(answerId)->second->getAnswer();
Index: code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h	(revision 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h	(revision 11750)
@@ -68,8 +68,8 @@
 
 			void addQuestion(Question* question); //xmlPort-Funktion, adds question to map
-			const Question* getQuestion() const; //xmlPort-Funktion, returns nullptr
+			Question* getQuestion(unsigned int index) const; //xmlPort-Funktion
 
 			void addAnswer(Answer* answer); //xmlPort-Funktion, adds answer to map
-			const Answer* getAnswer(unsigned int index) const; //xmlPort-Funktion, returns nullptr
+			Answer* getAnswer(unsigned int index) const; //xmlPort-Funktion
 
 			/**
@@ -80,5 +80,5 @@
 	            pointer to answerId array of question
 	        */
-			const std::vector<std::string>* getAnswerIds(); 
+			const std::vector<std::string>& getAnswerIds() const;
 
 			/**
@@ -133,5 +133,5 @@
 	           	sting with answer
 	        */
-			const std::string& getAnswerString(std::string answerId);
+			const std::string& getAnswerString(const std::string& answerId);
 
 		private: 
Index: code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc	(revision 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc	(revision 11750)
@@ -45,5 +45,5 @@
 	{
 		this->currentTalk_ = dialog;
-		answerIds_ = currentTalk_->getAnswerIds();	
+		answerIds_ = &currentTalk_->getAnswerIds();
 	}
 
@@ -86,5 +86,5 @@
     {
     	this->currentTalk_->update(answerIds_->at(index));
-    	answerIds_ = this->currentTalk_->getAnswerIds();
+    	answerIds_ = &this->currentTalk_->getAnswerIds();
     }
 }
Index: code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc	(revision 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc	(revision 11750)
@@ -75,12 +75,12 @@
 	}
 
-	const AnswerId* Question::getAnswerId() const
+	AnswerId* Question::getAnswerId(unsigned int index) const
 	{
 		return nullptr;
 	}
 
-	const std::vector<std::string>* Question::getAnswerIds()
+	const std::vector<std::string>& Question::getAnswerIds() const
 	{
-		return &(this->answerIds_);
+		return this->answerIds_;
 	}
 	
Index: code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h	(revision 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h	(revision 11750)
@@ -63,5 +63,5 @@
 
 			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
+			AnswerId* getAnswerId(unsigned int index) const;	//xmlPort-Funktion, gibt nichts zuruek
 
 			/**
@@ -72,5 +72,5 @@
 	           	returns pointer to the array with ids of possible pc textoptions
 	        */
-			const std::vector<std::string>* getAnswerIds(); //returnt Pointer auf Vektor mit allen Ids
+			const std::vector<std::string>& getAnswerIds() const; //returnt Pointer auf Vektor mit allen Ids
 
 
