@dbu looks sane to me. The only difference between the two closures defined as initializers is the call to `__wakeup` which I added only for performance reasons.