refactored to allow etags to work properly when multiple representations are available