lock-guard init