contains the old splitting implementation, but it contains code that allows the user to do stuff to the module