IMO if you're calling this from a non-main thread you're crazy, but I guess we could add locking if you really want it. (We could make nextPresenter an atomic property, for instance.)