You refactored this, and I still like it better the way I had it: I call the default init method first, and I only add the object to user info if init doesn't return nil. It's just the convention for init methods :)