fixing on change callback