/// <summary>
        /// Deregister provider in regsitered feeds 
        /// </summary>
        /// <param name="provider">provider</param>
        /// <returns>true : sucess, false : error</returns>
        public bool DeRegister(Provider provider)
        {
            if (provider == null)
            {
                return false;
            }

            bool isExist = this.Items.ContainsKey(provider);
            if (isExist == false)
            {
                return false;
            }

            this.Items.Remove(provider);

            return true;
        }
        /// <summary>
        /// Register provider for feed 
        /// </summary>
        /// <param name="provider">provider</param>
        /// <returns>true : sucess, false : error</returns>
        public bool Register(Provider provider)
        {
            if (provider == null)
            {
                throw new ArgumentException("provider");
            }

            bool isExist = this.Items.ContainsKey(provider);
            if (isExist == true)
            {
                return false;
            }

            Feeder feeder = new Feeder(provider.Uri);

            feeder.OnRead = new Action<System.IO.TextReader>(r =>
            {
                provider.Parser.Load(r);
                provider.Filler.Fill(provider.Parser);
            });

            feeder.OnError = new Action<FeedErrorEventArgs>(err =>
            {
                Logger.Log(err.ToString());

                if (Error != null)
                {
                    Error(this, err);
                }
            });

            this.Items.Add(provider, feeder);

            provider.RequestDelegate = new Action<Provider>(p => { feeder.Request(); });

            return true;
        }
 /// <summary>
 /// Checks provider is already registered 
 /// </summary>
 /// <param name="provider">provider</param>
 /// <returns>true : registered, false : not registered</returns>
 public bool Contains(Provider provider)
 {
     return this.Items.ContainsKey(provider);
 }