Pretty much all done except for sorting