Why are you reimplementing the sort filter proxy model? Why isn't implementing lazy population in the source model enough?