Have some opportunities to make some improvements here.
E.g. Stream.stream vs Stream.getUnderlyingStream -> maybe to simplify this even more it could just become a native stream (see alsatian)
Also review the rest of the code to find other such opportunities