added support for event propagation