Add config methods
Add timeout
Refactor validation checks and download/upload workers