simplified event redirection with dispatcher