Sorting by multiple fileds. closes #41 and #48