Fix issue #12 by rearranging state machine to support multiple boomerang calls