* split method by better algorithm