Considers both positive and negative values now.