more error-tolerant