refactors a bit, adds createServer(), removes startServer() and stopServer()