Of course if you're going to get OOPy this would be something
you could use a State/Strategy to represent the behavior
(which reminds me I really should write a review of
Design Patterns and Refactoring like I've
been meaning to for a while now . . .).