divide prepare into several small groups
seperate the prepare vector
seperate the prepare vector