handle workers more elegantly