added stop propagation and prevent default