refactor monster worker func