Isnt this class exactly same as multiThreadedstrategy with singleThreadedExecutorService ? 
should we have the strategy take an executorService and let the factory pass appropriate executor based on config instead of maintaining two separate strategies and factories ?