protected virtual void OnEstimationChanged(EstimationEventArgs e)
        {
            // Make a temporary copy of the event to avoid possibility of
            // a race condition if the last subscriber unsubscribes
            // immediately after the null check and before the event is raised.
            EventHandler <EstimationEventArgs> handler = EstimationChanged;

            if (handler != null)
            {
                handler(this, e);
            }
        }
        protected virtual void OnEstimationChanged(EstimationEventArgs e){

            // Make a temporary copy of the event to avoid possibility of
            // a race condition if the last subscriber unsubscribes
            // immediately after the null check and before the event is raised.
            EventHandler<EstimationEventArgs> handler = EstimationChanged;

            if (handler != null)
            {
                handler(this, e);
            }
        }