Removed @private to support subclasses for change design, etc...