replaced factory ctors to named ctors