added redundancy checking