Reduce event propagation and symplify loops