use streams internally much more aggressively