edited live() to use on()