Change private properties and methods to protected to allow extending