Build events via a pointer instead of returning a new object