rename change call back to onChange()