[DEV] add a worker interface