change component callback