use WeakVH/ValueMap to track updated values, recompute exits in case things have moved