The first thing you do when you write a program is have a plan