walkbomber use state machine which is hard to use