Passing all tests, but needs DRYing up
Extracted out the common code between streaming and simply converting collections from Java->Scala