Bug Fix: Use suppliers to get a stream so that the singleton method can get a new stream for each time it needs to be evaluated, this avoiding termination exceptions.