implement host worker