is there a reason this is `protected[scheduler]` and not `private[scheduler]`?