work on general structure
reorder