add std::map support