Client side event routing