No more userInfo dictionary and Downcasting, just deliver the concrete type value to the observer. u 2.Thread Safe u You can register, notify, unregister in any thread without crash and data corruption. u 3.Memory Safety u SwiftNotificationCenter store the observer as a zeroing-weak reference. No crash and no need to unregister manually.