Sorry to nitpick a little bit, but code to interfaces! No reason to force it to be a HashMap -- what if you want to change the implementation later?