Error-tolerant design