why this change? I would rather use some kind of no-op sorter rather than have a special case for `null`