reworked worker model and worker controller