Sealed WeakEvent and moved it to the Core namespace