Design a Chatbot Framework — Hard System Design Problem