Sort:  

Thanks @blackwhale, the final should be pretty interesting. It will probably take a few days to finish.