much refactoring (Context and Workers)