add CMDRunner & code refactor.