split up the server initialization so that we can use the same server init process from the tests. improved the error handling and fixed some bad json, added project docs