adds suport for non-default constructor call; So, mulex lock now unused