Use threads and caching to handle more clients and prevent timeouts
Make it easy to start everything at once
Give the data generator a low priority
Enable frequency-based train info