replace std::map with boost::unordered_map and handle its serialization