```scala
private val executorPool = numExecutor.map(new ExecutorPool(_)).getOrEsle(new ExecutorPool())
```

But I think it would make more sense to set the default in the NrvMemoryProtocol constuctor than passing an option and rely on the default of another component.