use a factory to create notification events