rename connection_buffer to message_buffer
swap out std::function with template parameters in message_buffer