diff --git a/person_detection/person_detection.py b/person_detection/person_detection.py
index 3d1fe80..29aef27 100644
--- a/person_detection/person_detection.py
+++ b/person_detection/person_detection.py
@@ -15,6 +15,7 @@
 from openvino.inference_engine import IECore
 from base_camera import BaseCamera
 
+DEFAULT_PROB_THRESH = 0.5
 
 def build_argparser():
     parser = ArgumentParser(add_help=False)
@@ -35,13 +36,14 @@
                            "Default value is CPU", default="CPU", type=str)
     args.add_argument("--labels", help="Optional. Path to labels mapping file", default=None, type=str)
     args.add_argument("-pt", "--prob_threshold", help="Optional. Probability threshold for detections filtering",
-                      default=0.5, type=float)
+                      default=DEFAULT_PROB_THRESH, type=float)
     args.add_argument("-ns", help='No show output', action='store_true')
 
     return parser
 
 
 class Camera(BaseCamera):
+    prob_threshold = DEFAULT_PROB_THRESH
 
     def __init__(self, device, args):
         log.basicConfig(format="[ %(levelname)s ] %(message)s", level=log.INFO, stream=sys.stdout)
@@ -81,8 +83,9 @@
             self.labels_map = None
 
         self.args = args
+        self.prob_threshold = args.prob_threshold
 
-        super(Camera, self).__init__(device)
+        super(Camera, self).__init__(device, args.idle)
 
     def __del__(self):
         self.cap.release()
@@ -145,7 +148,7 @@
 
                 for obj in res[0][0]:
                     # Draw only objects when probability more than specified threshold
-                    if obj[2] > self.args.prob_threshold:
+                    if obj[2] > self.prob_threshold:
                         xmin = int(obj[3] * initial_w)
                         ymin = int(obj[4] * initial_h)
                         xmax = int(obj[5] * initial_w)
