component can just return a stream without a need for template