seperate worker class and testing