Instead of hard-coding executors to use, how about making these passed via constructors with "full" constructor; but also allowing constructor that defaults these. I suspect that callers may want to tune details of these, and/or reuse configured ones.