store client_list as boost::unordered_set of boost::shared_ptr