abstract flow