change public constructor to private