abstracting executor type