added some abstraction (connection, conversation etc.)