make EventResult a swappable model