add split functions in so and po