Trying to identify the best way to use an Observer with multiple event types