add file streaming support