add InstanceMap metaprogramming utility class