Adding stream class & Functinal interface changes