moved listeners to prototype fns