private void demo(String host, String user, String password) {
        try {
            client.connect(host);

            // AUTHINFO USER/AUTHINFO PASS
            if (user != null && password != null) {
                boolean success = client.authenticate(user, password);
                if (success) {
                    System.out.println("Authentication succeeded");
                } else {
                    System.out.println("Authentication failed, error =" + client.getReplyString());
                }
            }

            // XOVER
            NewsgroupInfo testGroup = new NewsgroupInfo();
            client.selectNewsgroup("alt.test", testGroup);
            long lowArticleNumber = testGroup.getFirstArticleLong();
            long  highArticleNumber = lowArticleNumber + 100;
            Iterable<Article> articles = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);

            for (Article article : articles) {
                if (article.isDummy()) { // Subject will contain raw response
                    System.out.println("Could not parse: "+article.getSubject());
                } else {
                    System.out.println(article.getSubject());
                }
            }

            // LIST ACTIVE
            NewsgroupInfo[] fanGroups = client.listNewsgroups("alt.fan.*");
            for (NewsgroupInfo fanGroup : fanGroups)
            {
                System.out.println(fanGroup.getNewsgroup());
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }