TODO: Need to factor out EsurientStats in to a class hierarchy of its own + use thread pool and sockets instead of shell out to make it more robust. Let's do that this weekend