Text this: Software design for flexibility :