Reduce visibilities and move OrderBy logic
Add ModelQuery query building