fix event propagation properly