Abstracting executor repository and executor so that implementations get flexibility r:kartikbu