implement recursive flow run