Split out the executor to prepare for subroutines