public void UpdateMovableBlocks() { var toRemove = new List <ProblemContainer>(); foreach (ProblemContainer o in _movableProblems) { o.transform.Translate(_nextPosition * Time.deltaTime); if (o.transform.position.x < EndPosition.position.x) { ProblemFactoryInstance.DestroyProblem(o.transform); toRemove.Add(o); } } //Removing from the linked list foreach (var o in toRemove) { _movableProblems.Remove(o); } //Add new problems if it's needed AddProblemsToFeatLenght(); }