Refactor request and worker