Why expose these methods externally? `DropboxSetup` does one thing. I'd keep all this hidden behind a single `perform` method for now, and do your clever block yielding internally.