How to break a Complex Problem down into a Flow Chart