1.add feature that Bidirectional sorting,
2.set new sort_order value to source current max sort value
3.add insert and move function to adjust sort order