you are calling toList here anyway, why not make it a val so it is safe to call getSpout more than once.
```scala
private val itemsList = items.toList
```
And make sure to use itemsList in flatMap.

The Once part of TraversableOnce is important. The contract is you only go through it once (like an iterator)