Chatbot application using modern memory management techniques: smart pointers, the rule of five, move semantics