initial protected class with public constructors by using reflect