added some select/prefetch_related to reduce number of queries