the data must flow