add block stream function