implemented bsplit