          */
         public static function addProgressionEvent( status:int, progression01:String, progression02:String = null, progression03:String = null, score:int = 0 ):void {
             if( !isSupported ) return;
-            if( !mInitialized ) return;
+            validateExtensionContext();
 
             if( !GAProgressionStatus.isValid( status ) ) throw new ArgumentError( "Parameter status must be one of the values defined in class GAProgressionStatus." );
 

         */
        public static function addErrorEvent( severity:int, message:String = null ):void {
            if( !isSupported ) return;
            if( !mInitialized ) return;

            if( !GAErrorSeverity.isValid( severity ) ) throw new ArgumentError( "Parameter severity must be one of the values defined in class GAErrorSeverity." );



        private static function setDimensionInternal( value:String, dimension:int ):void {
            if( !isSupported ) return;
            validateExtensionContext();

            mContext.call( "setDimension", value, dimension );
        }

        private static function validateExtensionContext():void {
            if( !mInitialized ) throw new Error( "GameAnalytics extension was not initialized. Call init() first." );
        }

        private static function log( message:String ):void {
