While I love the idea of sharing the systemDictionary class binding in the method to gain immediate update in case of change I was questioning myself if we could not gain from not having (for example to get parametrized modules). The point is that we are not constantly changing classes especially when not programming but running program. So let us do some experiments: CompiledMethod allInstances size 58891 (CompiledMethod allInstances select: [:each | each classBinding value name = #Point]) size 100 [CompiledMethod allInstances select: [:each | each classBinding value name = #Point]] timeToRun 23 this is the best case since classBinding is at a fixed size now looking for any reference to Point (CompiledMethod allInstances select: [:cm | cm literals anySatisfy: [:each | each class = Association and: [each key = #Point ]]]) size 134 methods. [CompiledMethod allInstances select: [:cm | cm literals anySatisfy: [:each | each class = Association and: [each key = #Point ]]]] timeToRun 91 ms so it looks to me that this sharing is not something that we should not changed if needed. What do you think? Stef