- removed StateException, setRunning returns a boolean
- added InvalidArgumentException to replace invalid_argument exception - added SocketException thrown when the Server connect fails - Added ConnectionChecker to periodically check the server availability