public static Entity <Singletons> RemoveGlobalComponentReplacedListener <TScope, TComponent>(
     this Entity <Singletons> self,
     IComponentReplacedListener <TScope, TComponent> listener)
 {
     self.Get <ComponentReplacedListeners <TScope, TComponent> >().Listeners.Remove(listener);
     return(self);
 }
        public static Entity <TScope> AddComponentReplacedListener <TScope, TComponent>(
            this Entity <TScope> self,
            IComponentReplacedListener <TScope, TComponent> listener)
        {
            if (!self.Has <ComponentReplacedListeners <TScope, TComponent> >())
            {
                var list = ListPool <IComponentReplacedListener <TScope, TComponent> > .Instance.Get();

                self.Add(new ComponentReplacedListeners <TScope, TComponent>(list));
            }

            self.Get <ComponentReplacedListeners <TScope, TComponent> >().Listeners.Add(listener);
            return(self);
        }