Abstracting executor repository and executor so that implementations get flexibility