diff --git a/README.md b/README.md
index c9c590d95a22be624e1d05bc0613a3a7573dc88a..70f89d45543b71ac694d4049a6abefba01cf26cd 100644
--- a/README.md
+++ b/README.md
@@ -31,10 +31,9 @@ sudo apt-get install libpq-dev postgresql-12 postgresql-client-common postgresql
 
 #### Install python 3
 
-Install python 3
 ```
 sudo apt update
-sudo apt install python3 python3-dev python3-pip
+sudo apt install python3 python3-dev python3-pip python-is-python3
 ```
 
 ### Set up aprsc
diff --git a/server/trackdirect/TrackDirectConfig.py b/server/trackdirect/TrackDirectConfig.py
index 3da44ad236595cf7882ae938822b218e65777708..422d26afcbf2400e5bf48b2b0e50b6c6bf38b574 100644
--- a/server/trackdirect/TrackDirectConfig.py
+++ b/server/trackdirect/TrackDirectConfig.py
@@ -73,14 +73,14 @@ class TrackDirectConfig(Singleton):
         self.websocketFrequencyLimit = configParser.get(
             'websocket_server', 'frequency_limit').strip('"')
 
-        self.maxDefaultTime = configParser.get(
-            'websocket_server', 'max_default_time').strip('"')
-        self.maxFilterTime = configParser.get(
-            'websocket_server', 'max_filter_time').strip('"')
-        self.maxClientIdleTime = configParser.get(
-            'websocket_server', 'max_client_idle_time').strip('"')
-        self.maxQueuedRealtimePackets = configParser.get(
-            'websocket_server', 'max_queued_realtime_packets').strip('"')
+        self.maxDefaultTime = int(configParser.get(
+            'websocket_server', 'max_default_time').strip('"'))
+        self.maxFilterTime = int(configParser.get(
+            'websocket_server', 'max_filter_time').strip('"'))
+        self.maxClientIdleTime = int(configParser.get(
+            'websocket_server', 'max_client_idle_time').strip('"'))
+        self.maxQueuedRealtimePackets = int(configParser.get(
+            'websocket_server', 'max_queued_realtime_packets').strip('"'))
 
         allowTimeTravel = configParser.get(
             'websocket_server', 'allow_time_travel').strip('"')
@@ -142,10 +142,10 @@ class TrackDirectConfig(Singleton):
                 self.collector[collectorNumber]['numbers_in_batch'] = configParser.get(
                     'collector' + str(collectorNumber), 'numbers_in_batch').strip('"')
                 try:
-                    self.collector[collectorNumber]['frequency_limit'] = configParser.get(
-                        'collector' + str(collectorNumber), 'frequency_limit').strip('"')
+                    self.collector[collectorNumber]['frequency_limit'] = int(configParser.get(
+                        'collector' + str(collectorNumber), 'frequency_limit').strip('"'))
                 except (configparser.NoSectionError, configparser.NoOptionError):
-                    self.collector[collectorNumber]['frequency_limit'] = "0"
+                    self.collector[collectorNumber]['frequency_limit'] = 0
 
                 try:
                     saveFastPackets = configParser.get(