improve splitting correctness