puzzle: why did the previous version leak? (hint: circular references thru closure)