add SyncStreamReader and related tweaks in Stream