support multi-column sorting