kinda-polymorphic hash map