allow pseudo constructor