Splits `RuntimeService` interface into smaller interfaces to make testing easier and to delineate responsibilities.