implement streaming
expose response headers to user