don't worry about this too much, I'll refactor to use it statemachine soon.