Changes to HierarchicalSplit to ensure splits are always within bounds