private StressCommand getCommandInstance(int startKeyArg, CommandArgs commandArgs, CommandRunner commandRunner) {
        
        int startKey = commandArgs.startKey + startKeyArg;
        if ( log.isDebugEnabled() ) {
          log.debug("Command requested with starting key pos {} and op {}", startKey, commandArgs.getOperation());
        }
        
        Operation operation = commandArgs.getOperation();
        if ( operation.equals(Operation.REPLAY )) {
            operation = previousOperation;
        }
        switch(operation) {
        case INSERT:
            return new InsertCommand(startKey, commandArgs, commandRunner);        
        case READ:
            return new SliceCommand(startKey, commandArgs, commandRunner);     
        case RANGESLICE:
            return new RangeSliceCommand(startKey, commandArgs, commandRunner);
        case MULTIGET:
            return new MultigetSliceCommand(startKey, commandArgs, commandRunner);
        case VERIFY_LAST_INSERT:
          return new VerifyLastInsertCommand(startKey, commandArgs, commandRunner);
        case COUNTERSPREAD:
          return new BucketingCounterSpreadCommand(startKey, commandArgs, commandRunner);
        };
        return new InsertCommand(startKey, commandArgs, commandRunner);
    }