constructors have to be protected, right?