Please take a look.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
LGTM. I'm still not too fond of having those weird "finalize()" calls which change the behavior of the class, but as long as there are asserts guarding misuse it should be fine.