add etag middleware