Steps to prepare for big jump to stream.

Steps to prepare for big jump to stream, this is still compatible with
JDK5