genearlize split + unsplit