passed a bunch of tests, pulling now, will fix sort later