manual hash approach is even slower than STL map