older gcc std::map doesn't have emplace(), see
http://stackoverflow.com/questions/24389014/stdmap-emplace-gcc-4-8-2