improved column sorting behavior
maintain selection if data changes