add lock to construct/initialize functions