add stream funcions