adding ChatImpl and ChatInterface