Wrap region splitting under an interface.

Hi James, I was working on this and I refactor the code so the strategy for splitting the region would sit behind an interface. Do you think it worth making this refactor permanent? 

Thanks
Tony