protected constructors and public class