using tr1/unordered_map doesn't require C++11, and making it non-static allows use of [] syntax