reduces redundancy