diff --git a/code/pymqi/__init__.py b/code/pymqi/__init__.py
index 4d8f16f4a172b153b91acd41f859e0403702304c_Y29kZS9weW1xaS9fX2luaXRfXy5weQ==..c7846163b23ac23122396900a8c97f126bc89f9f_Y29kZS9weW1xaS9fX2luaXRfXy5weQ== 100644
--- a/code/pymqi/__init__.py
+++ b/code/pymqi/__init__.py
@@ -2703,8 +2703,8 @@
                 message = message + pcf_filter.pack()
 
         command_queue = Queue(self.__pcf.qm,
-                              self.__pcf._command_queue_name,
+                              self.__pcf.command_queue_name,
                               CMQC.MQOO_OUTPUT)
 
         put_md = MD(Format=CMQC.MQFMT_ADMIN,
                     MsgType=CMQC.MQMT_REQUEST,
@@ -2707,6 +2707,6 @@
                               CMQC.MQOO_OUTPUT)
 
         put_md = MD(Format=CMQC.MQFMT_ADMIN,
                     MsgType=CMQC.MQMT_REQUEST,
-                    ReplyToQ=self.__pcf._reply_queue_name,
+                    ReplyToQ=self.__pcf.reply_queue_name,
                     Feedback=CMQC.MQFB_NONE,
@@ -2712,5 +2712,5 @@
                     Feedback=CMQC.MQFB_NONE,
-                    Expiry=self.__pcf.response_wait_interval,
+                    Expiry=self.__pcf.response_wait_interval // 100,
                     Report=CMQC.MQRO_PASS_DISCARD_AND_EXPIRY | CMQC.MQRO_DISCARD_MSG)
         put_opts = PMO(Options=CMQC.MQPMO_NO_SYNCPOINT)
 
@@ -2732,7 +2732,7 @@
 
         ress = []
         while True:
-            message = self.__pcf._reply_queue.get(None, get_md, get_opts)
+            message = self.__pcf.reply_queue.get(None, get_md, get_opts)
             res, control = self.__pcf.unpack(message)
 
             ress.append(res)
@@ -2754,11 +2754,6 @@
     its used. PCF commands are executed by calling a CMQC defined
     MQCMD_* method on the object.  """
 
-    _reply_queue = None # type: Queue
-    _reply_queue_name = None # type: str
-    _command_queue_name = b'SYSTEM.ADMIN.COMMAND.QUEUE' # type: bytes
-    response_wait_interval = 0
-
     qm = None # type: Optional[QueueManager]
 
     iaStringDict = _MQConst2String(CMQC, 'MQIA_')
@@ -2768,6 +2763,6 @@
                  disconnect_on_exit=True,
                  model_queue_name=b'SYSTEM.DEFAULT.MODEL.QUEUE',
                  dynamic_queue_name=b'PYMQPCF.*',
-                 command_queue_name=b'',
-                 response_wait_interval=100,
+                 command_queue_name=b'SYSTEM.ADMIN.COMMAND.QUEUE',
+                 response_wait_interval=5000,
                  convert=False):
@@ -2773,8 +2768,8 @@
                  convert=False):
-        # type: (Any, bool, bytes, bytes, bytes) -> None
+        # type: (Any, bool, bytes, bytes, bytes, int, bool) -> None
         """PCFExecute(name = '')
 
         Connect to the Queue Manager 'name' (default value '') ready
         for a PCF command. If name is a QueueManager instance, it is
         used for the connection, otherwise a new connection is made """
 
@@ -2775,14 +2770,13 @@
         """PCFExecute(name = '')
 
         Connect to the Queue Manager 'name' (default value '') ready
         for a PCF command. If name is a QueueManager instance, it is
         used for the connection, otherwise a new connection is made """
 
-        self.response_wait_interval = response_wait_interval
-        self.convert = convert
-
-        if command_queue_name:
-            self._command_queue_name = command_queue_name
+        self.__command_queue_name = command_queue_name
+        self.__convert = convert
+        self.__response_wait_interval = response_wait_interval
+
 
         if isinstance(name, QueueManager):
             self.qm = name
@@ -2791,13 +2785,31 @@
             self.qm = None
             super(PCFExecute, self).__init__(name)
 
-        if not self._reply_queue and not self._reply_queue_name:
-            od = OD(ObjectName=model_queue_name,
-                    DynamicQName=dynamic_queue_name)
-
-            self._reply_queue = Queue(self.qm, od, CMQC.MQOO_INPUT_EXCLUSIVE)
-            self._reply_queue_name = od.ObjectName.strip()
-
+        od = OD(ObjectName=model_queue_name,
+                DynamicQName=dynamic_queue_name)
+
+        self.__reply_queue = Queue(self.qm, od, CMQC.MQOO_INPUT_EXCLUSIVE)
+        self.__reply_queue_name = od.ObjectName.strip()
+
+    @property
+    def command_queue_name(self):
+        return self.__command_queue_name
+
+    @property
+    def convert(self):
+        return self.__convert
+
+    @property
+    def reply_queue(self):
+        return self.__reply_queue
+
+    @property
+    def reply_queue_name(self):
+        return self.__reply_queue_name
+
+    @property
+    def response_wait_interval(self):
+        return self.__response_wait_interval
 
     def __getattr__(self, name):
         """MQCMD_*(attrDict)
@@ -2849,8 +2861,8 @@
         """ Disconnect from reply_queue
         """
         try:
-            if self._reply_queue and self._reply_queue.get_handle():
-                self._reply_queue.close()
+            if self._reply_queue and self.__reply_queue.get_handle():
+                self.__reply_queue.close()
         except MQMIError as ex:
             pass
         finally:
@@ -2854,8 +2866,8 @@
         except MQMIError as ex:
             pass
         finally:
-            self._reply_queue = None
-            self._reply_queue_name = None
+            self.__reply_queue = None
+            self.__reply_queue_name = None
 
     @staticmethod
     def unpack(message): # type: (bytes) -> dict
@@ -2872,6 +2884,6 @@
         if mqcfh.CompCode:
             raise MQMIError(mqcfh.CompCode, mqcfh.Reason)
 
-        res = {}
+        res = {}  # type: Dict[str, Union[int, str, bool, Dict]]
         index = mqcfh.ParameterCount
         cursor = CMQCFC.MQCFH_STRUC_LENGTH
@@ -2876,7 +2888,7 @@
         index = mqcfh.ParameterCount
         cursor = CMQCFC.MQCFH_STRUC_LENGTH
-        parameter = None # type: Optional[MQOpts]
-        group = None
+        parameter = None  # type: Optional[MQOpts]
+        group = None  # type: Union[None, Dict[str, Union[str, int, bool]]]
         group_count = 0
 
         while (index > 0):
diff --git a/code/tests/test_pcf.py b/code/tests/test_pcf.py
index 4d8f16f4a172b153b91acd41f859e0403702304c_Y29kZS90ZXN0cy90ZXN0X3BjZi5weQ==..c7846163b23ac23122396900a8c97f126bc89f9f_Y29kZS90ZXN0cy90ZXN0X3BjZi5weQ== 100644
--- a/code/tests/test_pcf.py
+++ b/code/tests/test_pcf.py
@@ -347,9 +347,9 @@
 
         pcf = pymqi.PCFExecute(self.qmgr)
 
-        self.assertTrue(pcf._reply_queue)
-        self.assertTrue(pcf._reply_queue_name)
+        self.assertTrue(pcf.reply_queue)
+        self.assertTrue(pcf.reply_queue_name)
 
         pcf.disconnect()
 
         self.assertTrue(self.qmgr)
@@ -352,9 +352,9 @@
 
         pcf.disconnect()
 
         self.assertTrue(self.qmgr)
-        self.assertFalse(pcf._reply_queue)
-        self.assertFalse(pcf._reply_queue_name)
+        self.assertFalse(pcf.reply_queue)
+        self.assertFalse(pcf.reply_queue_name)
 
 if __name__ == "__main__":
     main(module="test_pcf")