public virtual void OnChange(Entity entity) { var contains = _entities.Contains(entity); var interest = _matcher.IsInterested(entity); if (interest && !contains) { Add(entity); } else if (!interest && contains) { Remove(entity); } }