Is `NullOrderGroup` ever actually used?  Reading the code, it looks like it'll always be immediately replaced with `with_order_group` (which also suggests the value in having it receive the group in the constructor).