added reordering, does not save the new order yet
all requirements appear to be working, need to do further testing and code refactoring and notes