if `subscriber` is `null`, `publish` will throw an NPE