work on event hierarchy traversal