add EventDiscriminator to re-dispatch events for the active user-system

This idea was originally proposed by GitHub user dramos
But this implementation uses less magic