changed @private to @protected where approprtiate