I missed the || guard on the last pass. I see what you're doing now. I think this works okay but maybe find a better place to put _lookupFns. Probably on the ctor function.