Listen to changes change event instead of opts.onChange