implimented flow composer