many progress fixes
refactored to ReadWriteStream