add note about keeping the op serialized
refactor: extract worker func
refactor: add init