generic maps and hash tables