Change newGame to return newly created object and require callback
Move app into own class to make integration tests easier and improve handling of port