We could probably simplify the `instNum` key business by using a WeakMap right? Probably not something we want to do while the ES6 collections are behind a flag in node but something to keep in mind as a future refactoring.