add Worker support; improve performance