error detection routine