fix sort_by bug