implement P5split