fixed overflow issue again (wasn't handling negatives proper)