I happened to look at the new code for LayoutFrame>>#hash hash ^self species hash bitXor: (self leftFraction bitXor: (self leftOffset bitXor: (self topFraction bitXor: (self topOffset bitXor: (self rightFraction bitXor: (self rightOffset bitXor: (self bottomFraction bitXor: self bottomOffset))))))) This is a terrible, terrible way to compute a hash. 0 xor 0 = 1 xor 1 = 2 xor 2 = etc. NEVER compute hashes with xor, that's wrong, and it causes horrible, hard to debug, performance bugs down the road. SequenceableCollection>>#hash looks more like a correct way of doing it. I do not know what is the correct, efficient way to reuse this logic in LayoutFrame>>#hash. By the way, how do you guys do code reviews for code integrated into the core?