public static Entity <Singletons> RemoveGlobalComponentRemovedListener <TScope, TComponent>(
     this Entity <Singletons> self,
     IComponentRemovedListener <TScope, TComponent> listener)
 {
     self.Get <ComponentRemovedListeners <TScope, TComponent> >().Listeners.Remove(listener);
     return(self);
 }
        public static Entity <TScope> AddComponentRemovedListener <TScope, TComponent>(
            this Entity <TScope> self,
            IComponentRemovedListener <TScope, TComponent> listener)
        {
            if (!self.Has <ComponentRemovedListeners <TScope, TComponent> >())
            {
                var list = ListPool <IComponentRemovedListener <TScope, TComponent> > .Instance.Get();

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

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