replaced deprecated live() with on()