add worker model and util function