use boost::asio::address for address