add stream function