Updated private constructors to protected so the classes can be extended.