I find it weird that `null` toggles the behavior so drastically. I would expect `null` and `0` being the same (without looking at implementation). **Maybe** this should be 2 separate methods.