add error callback