so `total` is guaranteed to be positive?