restrict access to illicit constructor