add rebase and principile reordering