flow explanation