public constructor changed by a private one