tooled state machine in coffeescript? its better!