listen on changes only, not on input