fixing deadlock with recoursive init