used prefetch_related instead of select_related to fix performance issue, changed survey cache to only query database once