more work on retries plus refactoring
more work on retries plus refactoring
finished basic design and added tests