okay, we use std::map this time