add error tracking