Sort:  

Thanks @cave-man, its quite challenging :)