deal with non-positive numbers