add worker classes
refactoring worker flows