compose stream fully functional