new back end uses streams