Text this: Using structured design : How to make programs simple changeable, flexible, and reusable