Ok. I wonder if this shouldn't be done as a generic state (a symbol or something) so that you can build a real state machine using this mechanism?