Duplication with retry behavior?  Can we commonalize?  This ties in with whether we should have an object here rather than a "state" structure.