without redundancy