Isn't it weird to declare private methods which are intended to be extended ?