added listeners, value changes "on the fly"