Very simple flow which represents what we should do.. add extra
stuff in time, to represent more low-level stuff we need to do

run with:
`dot -Tpng -omain-idea.png main-idea.dot`

You should have graphiz installed (use OSX or linux)