/// <summary>
        /// Starting load method
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="_owner"></param>
        /// <returns></returns>
        public static Conversation loadConversation(String filename, AIBase _owner, String nextConvo)
        {
            Conversation newConvo = new Conversation(_owner)
            {
                next = nextConvo
            };


            XmlTextReader xmlReader = new XmlTextReader(filename);

            xmlReader.ReadToFollowing("Conversation");
            newConvo.Question = xmlReader.GetAttribute("value");
            xmlReader.ReadToDescendant("Response");
            do
            {
                String responseText = xmlReader.GetAttribute("value");

                String type = xmlReader.GetAttribute("type");
                if (type.Equals("Event"))
                {
                    xmlReader.ReadToDescendant("Events");
                    xmlReader.ReadToDescendant("Event");
                    Stack <Event> events = new Stack <Event>();
                    do
                    {
                        String eventName  = xmlReader.GetAttribute("eventName");
                        String eventValue = xmlReader.GetAttribute("eventValue");
                        events.Push(new Event(eventName, eventValue));
                    } while (xmlReader.ReadToNextSibling("Event"));

                    ConversationResponse cr = new ConversationResponse(responseText, events, _owner);
                    newConvo.responses.Add(cr);
                    xmlReader.Read();
                    xmlReader.Read();
                }
                else if (type.Equals("Convo"))
                {
                    ConversationResponse cr = new ConversationResponse(responseText, loadConversation(_owner, xmlReader), _owner);
                    newConvo.responses.Add(cr);
                    xmlReader.Read();
                    xmlReader.Read();
                    xmlReader.Read();
                    xmlReader.Read();
                }
                else
                {
                    throw new Exception("Bad Convo");
                }
            } while (xmlReader.ReadToNextSibling("Response"));
            xmlReader.Close();
            return(newConvo);
        }
 /// <summary>
 /// Next is event constructor
 /// </summary>
 /// <param name="_text"></param>
 /// <param name="_events"></param>
 /// <param name="owner"></param>
 public ConversationResponse(String _text, Stack <Event> _events, AIBase owner)
 {
     ai           = owner;
     text         = _text;
     eventsToSend = _events;
 }
 /// <summary>
 /// Next is convo constructor
 /// </summary>
 /// <param name="_text"></param>
 /// <param name="_conversation"></param>
 /// <param name="owner"></param>
 public ConversationResponse(String _text, Conversation _conversation, AIBase owner)
 {
     ai    = owner;
     text  = _text;
     convo = _conversation;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="_owner"></param>
 public Conversation(AIBase _owner)
 {
     owner     = _owner;
     responses = new List <ConversationResponse>();
 }