changed object retrieval to use get_object_or_404