Use Range everywhere + std::map -> std::unordered_map