with flowchart