finish coding the feature splitting, some code has error need more test