add Boost.Asio session design