add error check function