added flow explanation