add error control