Hmm, shouldn't all of this merging code be in `event.go` with the rest?