initial checkin of StreamUtil