almost there, positive values work, negative values differ by 1