add reorder functionality; make it better