listener that uses streams