use worker and ensure exit