always return a stream and make callback optional
stream example