using Stream more while keeping it mostly transparent