diff --git a/predtuner/pipedbin.py b/predtuner/pipedbin.py
index 8882370bb4fefeb430000809f909b34dbea62680..4aea660cfb508524772f46a8efc2d7c8c39cb46d 100644
--- a/predtuner/pipedbin.py
+++ b/predtuner/pipedbin.py
@@ -6,7 +6,7 @@ from typing import Dict, List, Optional, Sequence, Tuple, Union
 import numpy as np
 import torch
 
-from .approxapp import ApproxKnob, BaselineKnob, KnobsT
+from .approxapp import ApproxKnob, KnobsT
 from .modeledapp import (
     IPerfModel,
     IQoSModel,
@@ -29,6 +29,7 @@ class PipedBinaryApp(ModeledApp):
         metadata_path: PathLike,
         base_dir: PathLike = None,
         qos_relpath: PathLike = "final_accuracy",
+        tuning_device: str = None,
         model_storage_folder: Optional[PathLike] = None,
     ):
         self.app_name = app_name
@@ -54,7 +55,7 @@ class PipedBinaryApp(ModeledApp):
         if not self.binary_path.is_file():
             raise RuntimeError(f"Binary file {self.binary_path} not found")
 
-        super().__init__(op_knobs)  # Init here
+        super().__init__(op_knobs, tuning_device)  # Init here
         self.knob_exporter = HPVMConfigBuilder(list(op_knobs.keys()))
         self.process = None
         self._invoke_binary()
@@ -178,7 +179,7 @@ class PipedBinaryApp(ModeledApp):
             raise ValueError(f"baseline_knob {baseline_knob} is undefined")
         # Create actual knob object from knob names
         name2knob = {
-            s: BaselineKnob(s) if s == baseline_knob else ApproxKnob(s)
+            s: ApproxKnob(s, baseline_priority=(0 if s == baseline_knob else None))
             for s in knobs_used
         }
         op_knobs = {op: [name2knob[k] for k in knobs] for op, knobs in op_knobs.items()}