added @caolon's work on the worker API