attempt to remove redundancy