public IPooled Take() { if (poolStack.Count == 0) { AddInstanceToPool(); } IPooled item = poolStack.Pop(); item.TakeFromPool(); activeItems.Add(item); return(item); }