Refactored part with notification (see Effective Objective-C item 4, item 31 )