diff --git a/person_detection/app.py b/person_detection/app.py
index 05eaba4..1386d63 100644
--- a/person_detection/app.py
+++ b/person_detection/app.py
@@ -63,4 +63,4 @@
 
 if __name__ == '__main__':
     args = build_argparser().parse_args()
-    app.run(host='0.0.0.0', threaded=False, processes=3)
+    app.run(host='0.0.0.0', debug=True)
diff --git a/person_detection/person_detection.py b/person_detection/person_detection.py
index d61af16..7cdfd9f 100644
--- a/person_detection/person_detection.py
+++ b/person_detection/person_detection.py
@@ -9,7 +9,6 @@
 import logging as log
 import os
 import sys
-import time
 from argparse import ArgumentParser, SUPPRESS
 from imutils import build_montages
 
@@ -90,10 +89,6 @@
         cur_request_id = 0
         next_request_id = 1
 
-        # Async doesn't work if True
-        # Request issues = Runtime Error: [REQUEST BUSY]
-        # self.is_async_mode = False
-        render_time = 0
         ret, frame = stream.read()
 
         while True:
@@ -109,7 +104,6 @@
             # Main sync point:
             # in the truly Async mode we start the NEXT infer request, while waiting for the CURRENT to complete
             # in the regular mode we start the CURRENT request and immediately wait for it's completion
-            inf_start = time.time()
             if self.is_async_mode:
                 in_frame = cv2.resize(next_frame, (shape.w, shape.h))
                 in_frame = in_frame.transpose((2, 0, 1))  # Change data layout from HWC to CHW
@@ -122,8 +116,6 @@
                 exec_net.start_async(request_id=cur_request_id, inputs={input_blob: in_frame})
 
             if exec_net.requests[cur_request_id].wait(-1) == 0:
-                inf_end = time.time()
-                det_time = inf_end - inf_start
 
                 # Parse detection results of the current request
                 res = exec_net.requests[cur_request_id].outputs[out_blob]
@@ -150,13 +142,8 @@
                 cv2.putText(frame, self.device, (10, int(initial_h - 20)),
                         cv2.FONT_HERSHEY_COMPLEX, 0.5, (10, 10, 200), 1)
 
-            render_start = time.time()
-
             yield cv2.imencode('.jpg', frame)[1].tobytes()
 
-            render_end = time.time()
-            render_time = render_end - render_start
-
             if self.is_async_mode:
                 cur_request_id, next_request_id = next_request_id, cur_request_id
                 frame = next_frame
