You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2020/01/15 00:19:42 UTC

[incubator-datasketches-website] branch clean_asf_site created (now e443537)

This is an automated email from the ASF dual-hosted git repository.

leerho pushed a change to branch clean_asf_site
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-website.git.


      at e443537  Cleanup asf-site

This branch includes the following new commits:

     new e443537  Cleanup asf-site

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org


[incubator-datasketches-website] 01/01: Cleanup asf-site

Posted by le...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

leerho pushed a commit to branch clean_asf_site
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-website.git

commit e443537c3dc550ec4d64a8ae4b1a7829b23a8479
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Tue Jan 14 16:19:14 2020 -0800

    Cleanup asf-site
---
 .gitignore                                         |    4 +
 404.html                                           |   24 -
 DISCLAIMER-WIP                                     |   26 -
 LICENSE                                            |  210 ----
 NOTICE                                             |   11 -
 README.html                                        |  573 -----------
 pom.xml                                            |  630 ------------
 script/cibuild                                     |    6 -
 .../org/apache/datasketches/ByteArrayBuilder.java  |  210 ----
 src/main/java/org/apache/datasketches/Files.java   | 1040 --------------------
 .../apache/datasketches/docgen/ErrorTables.java    |   86 --
 .../apache/datasketches/docgen/MarkDownTable.java  |  133 ---
 .../apache/datasketches/docgen/TocGenerator.java   |  263 -----
 src/main/resources/docgen/toc.json                 |  232 -----
 src/main/resources/docgen/tocScript.html           |   64 --
 15 files changed, 4 insertions(+), 3508 deletions(-)

diff --git a/.gitignore b/.gitignore
index 9afbe71..f329bfb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,9 +6,13 @@ about.md
 Gemfile
 Gemfile.lock
 _posts/
+.DS_store
+
 
 # Eclipse
 .project
+.classpath
+.settings/
 
 # yml files
 
diff --git a/404.html b/404.html
deleted file mode 100644
index c472b4e..0000000
--- a/404.html
+++ /dev/null
@@ -1,24 +0,0 @@
----
-layout: default
----
-
-<style type="text/css" media="screen">
-  .container {
-    margin: 10px auto;
-    max-width: 600px;
-    text-align: center;
-  }
-  h1 {
-    margin: 30px 0;
-    font-size: 4em;
-    line-height: 1;
-    letter-spacing: -1px;
-  }
-</style>
-
-<div class="container">
-  <h1>404</h1>
-
-  <p><strong>Page not found :(</strong></p>
-  <p>The requested page could not be found.</p>
-</div>
diff --git a/DISCLAIMER-WIP b/DISCLAIMER-WIP
deleted file mode 100644
index c90f3f7..0000000
--- a/DISCLAIMER-WIP
+++ /dev/null
@@ -1,26 +0,0 @@
-Apache DataSketches (incubating) is an effort undergoing incubation 
-at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. 
-
-Incubation is required of all newly accepted projects until a further review 
-indicates that the infrastructure, communications, and decision making process 
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the
-completeness or stability of the code, it does indicate that the
-project has yet to be fully endorsed by the ASF.
-
-Some of the incubating project's releases may not be fully compliant
-with ASF policy. For example, releases may have incomplete or
-un-reviewed licensing conditions. What follows is a list of known
-issues the project is currently aware of (note that this list, by
-definition, is likely to be incomplete): 
-
- * The LICENSE and NOTICE files may not be complete and will be fixed with the next release.
-
-If you are planning to incorporate this work into your
-product or project, please be aware that you will need to conduct a
-thorough licensing review to determine the overall implications of
-including this work. For the current status of this project through the Apache
-Incubator visit: 
-
-http://incubator.apache.org/projects/datasketches.html
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 5667780..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,210 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-
-
-APPENDIX A: How to apply the Apache License to your work.
-
-    To apply the Apache License to your work, attach the following
-    boilerplate notice, with the fields enclosed by brackets "[]"
-    replaced with your own identifying information. (Don't include
-    the brackets!)  The text should be enclosed in the appropriate
-    comment syntax for the file format. We also recommend that a
-    file or class name and description of purpose be included on the
-    same "printed page" as the copyright notice for easier
-    identification within third-party archives.
-    -------------------------------------------------------------
-    Copyright [yyyy] [name of copyright owner]
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-        http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-    -------------------------------------------------------------
-
-
-
-APPENDIX B: Additional licenses relevant to this Apache DataSketches (incubating) component:
-    (none)
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index bd2e463..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,11 +0,0 @@
-Apache DataSketches Website (incubating)
-Copyright 2019 - The Apache Software Foundation
-
-Copyright 2015-2018 Yahoo
-Copyright 2018 - Verizon Media
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-Prior to moving to ASF, the software for this project was developed at
-Yahoo (now Verizon Media) (https://developer.yahoo.com).
diff --git a/README.html b/README.html
deleted file mode 100644
index 8665490..0000000
--- a/README.html
+++ /dev/null
@@ -1,573 +0,0 @@
-<!DOCTYPE html>
-<!-- Start _layouts/doc_page.html-->
-<html lang="en">
-
-<head>
-  <!-- Start site_head.html include-->
-<meta charset="UTF-8" />
-<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<meta name="description" content="">
-<meta name="author" content="datasketches">
-
-<title>DataSketches | </title>
-
-<link rel="shortcut icon" href="/img/favicon.png">
-
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
-<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
-
-<link href='https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700,300italic|Open+Sans:300italic,400italic,600italic,400,300,600'
-  rel='stylesheet' type='text/css'>
-
-<link rel="stylesheet" href="/css/main.css">
-<link rel="stylesheet" href="/css/header.css">
-<link rel="stylesheet" href="/css/footer.css">
-<link rel="stylesheet" href="/css/syntax.css">
-<link rel="stylesheet" href="/css/docs.css">
-
-
-<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML-full">
-</script>
-<script src="https://code.jquery.com/jquery.min.js"></script>
-<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
-<!-- End site_head.html include-->
-
-</head>
-
-<body>
-  <!-- Start page_header.html include -->
-<div class="navbar navbar-inverse navbar-static-top ds-nav">
-  <div class="container">
-    <div class="navbar-header">
-      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-        <span class="sr-only">Toggle navigation</span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-        <span class="icon-bar"></span>
-      </button>
-      <!-- navbar-brand: https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css -->
-      <!-- /css/main.css:57:.logo -->
-      <a class="navbar-brand logo" href="/">DataSketches</a>
-    </div>
-    <div class="navbar-collapse collapse">
-      <ul class="nav navbar-nav navbar-right">
-        <li>
-          <a href="/overview.html">
-            <span class="fa fa-info-circle"></span> OVERVIEW</a>
-        </li>
-        <li>
-          <a href="/docs/downloads.html">
-            <span class="fa fa-download"></span> DOWNLOAD</a>
-        </li>
-        <li>
-          <a href="https://github.com/apache?utf8=%E2%9C%93&q=datasketches&type=&language=">
-            <span class="fa fa-github"></span> GITHUB</a>
-        </li>
-        <li>
-          <a href="/docs/Research.html">
-            <span class="fa fa-paper-plane"></span> RESEARCH</a>
-        </li>
-        <li>
-          <a href="https://groups.google.com/forum/#!forum/sketches-user">
-            <span class="fa fa-comment"></span> FORUM</a>
-        </li>
-
-      </ul>
-    </div>
-  </div>
-</div>
-<!-- End page_header.html include -->
-
-
-  <div class="ds-header">
-    <div class="container">
-      <h4>API Snapshots:
-        <a href="/api/java/snapshot/apidocs/index.html">Java Core</a>,
-        <a href="/api/memory/snapshot/apidocs/index.html">Memory</a>,
-        <a href="/api/pig/snapshot/apidocs/index.html">Pig</a>,
-        <a href="/api/hive/snapshot/apidocs/index.html">Hive</a>,
-      </h4>
-    </div>
-  </div>
-
-  <div class="container">
-    <div class="row">
-      <div class="col-md-3">
-        <div class="searchbox" style="position:relative">
-          <gcse:searchbox-only></gcse:searchbox-only>
-        </div>
-        <!-- Computer Generated File, Do Not Edit! -->
-<link rel="stylesheet" href="/css/toc.css">
-<div id="toc" class="nav toc hidden-print">
-
-  <p id="overview">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_overview">Overview</a>
-  </p>
-  <div class="collapse" id="collapse_overview">
-    <li><a href="/docs/TheChallenge.html">The Challenge</a></li>
-    <li><a href="/docs/MajorSketchFamilies.html">The Major Sketch Families</a></li>
-    <li><a href="/docs/SketchOrigins.html">Sketch Origins</a></li>
-    <li><a href="/docs/SketchElements.html">Sketch Elements</a></li>
-    <li><a href="/docs/KeyFeatures.html">Key Features</a></li>
-    <li><a href="/docs/LargeScale.html">Large Scale Computing</a></li>
-    <li><a href="/docs/Architecture.html">Architecture</a></li>
-    <li><a href="/docs/OrderSensitivity.html">Notes on Order Sensitivity</a></li>
-    <li><a href="/docs/Concurrency.html">Notes on Concurrency</a></li>
-    <li><a href="https://github.com/DataSketches/DataSketches.github.io/blob/master/docs/pdf/DataSketches_deck.pdf">Overview Slide Deck</a></li>
-  </div>
-
-  <p id="research">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_research">Research</a>
-  </p>
-  <div class="collapse" id="collapse_research">
-    <li><a href="/docs/Research.html">Research</a></li>
-  </div>
-
-  <p id="distinct-counting">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_distinct_counting">Distinct Counting</a>
-  </p>
-  <div class="collapse" id="collapse_distinct_counting">
-
-    <p id="hyperloglog-sketches">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_hyperloglog_sketches">HyperLogLog Sketches</a>
-    </p>
-    <div class="collapse" id="collapse_hyperloglog_sketches">
-      <li><a href="/docs/HLL/HLL.html">HLL Sketch</a></li>
-      <li><a href="/docs/HLL/HllMap.html">HLL Map Sketch</a></li>
-
-      <p id="hll-examples">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_hll_examples">HLL Examples</a>
-      </p>
-      <div class="collapse" id="collapse_hll_examples">
-        <li><a href="/docs/HLL/HllJavaExample.html">HLL Sketch Java Example</a></li>
-        <li><a href="/docs/HLL/HllPigUDFs.html">HLL Sketch Pig UDFs</a></li>
-        <li><a href="/docs/HLL/HllHiveUDFs.html">HLL Sketch Hive UDFs</a></li>
-        <li><a href="/docs/DruidIntegration.html">Using Sketches in Druid</a></li>
-      </div>
-
-      <p id="hll-studies">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_hll_studies">HLL Studies</a>
-      </p>
-      <div class="collapse" id="collapse_hll_studies">
-        <li><a href="/docs/HLL/Hll_vs_Hllpp.html">HLL vs HLL++</a></li>
-        <li><a href="/docs/HLL/HllSketchVsDruidHyperLogLogCollector.html">HLL Sketch vs Druid HyperLogLogCollector</a></li>
-      </div>
-    </div>
-
-    <p id="theta-sketches">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_theta_sketches">Theta Sketches</a>
-    </p>
-    <div class="collapse" id="collapse_theta_sketches">
-      <li><a href="/docs/Theta/ThetaSketchFramework.html">Theta Sketch Framework</a></li>
-
-      <p id="theta-examples">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_theta_examples">Theta Examples</a>
-      </p>
-      <div class="collapse" id="collapse_theta_examples">
-        <li><a href="/docs/Theta/ConcurrentThetaSketch.html">Concurrent Theta Sketch</a></li>
-        <li><a href="/docs/Theta/ThetaJavaExample.html">Theta Sketch Java Example</a></li>
-        <li><a href="/docs/Theta/ThetaSparkExample.html">Theta Sketch Spark Example</a></li>
-        <li><a href="/docs/Theta/ThetaPigUDFs.html">Theta Sketch Pig UDFs</a></li>
-        <li><a href="/docs/Theta/ThetaHiveUDFs.html">Theta Sketch Hive UDFs</a></li>
-        <li><a href="/docs/DruidIntegration.html">Using Sketches in Druid</a></li>
-      </div>
-
-      <p id="kmv-tutorial">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_kmv_tutorial">KMV Tutorial</a>
-      </p>
-      <div class="collapse" id="collapse_kmv_tutorial">
-        <li><a href="/docs/Theta/InverseEstimate.html">The Inverse Estimate</a></li>
-        <li><a href="/docs/Theta/KMVempty.html">Empty Sketch</a></li>
-        <li><a href="/docs/Theta/KMVfirstEst.html">First Estimator</a></li>
-        <li><a href="/docs/Theta/KMVbetterEst.html">Better Estimator</a></li>
-        <li><a href="/docs/Theta/KMVrejection.html">Rejection Rules</a></li>
-        <li><a href="/docs/Theta/KMVupdateVkth.html">Update V(kth) Rule</a></li>
-      </div>
-
-      <p id="set-operations-and-p-sampling">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_set_operations_and_p-sampling">Set Operations and P-sampling</a>
-      </p>
-      <div class="collapse" id="collapse_set_operations_and_p-sampling">
-        <li><a href="/docs/Theta/ThetaSketchSetOps.html">Set Operations</a></li>
-        <li><a href="/docs/Theta/ThetaPSampling.html"><i>p</i>-Sampling</a></li>
-      </div>
-
-      <p id="accuracy">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_accuracy">Accuracy</a>
-      </p>
-      <div class="collapse" id="collapse_accuracy">
-        <li><a href="/docs/Theta/ThetaAccuracy.html">Basic Accuracy</a></li>
-        <li><a href="/docs/Theta/ThetaAccuracyPlots.html">Accuracy Plots</a></li>
-        <li><a href="/docs/Theta/ThetaErrorTable.html">Relative Error Table</a></li>
-        <li><a href="/docs/Theta/ThetaSketchSetOpsAccuracy.html">SetOp Accuracy</a></li>
-        <li><a href="/docs/Theta/AccuracyOfDifferentKUnions.html">Unions With Different k</a></li>
-      </div>
-
-      <p id="size">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_size">Size</a>
-      </p>
-      <div class="collapse" id="collapse_size">
-        <li><a href="/docs/Theta/ThetaSize.html">Theta Sketch Size</a></li>
-      </div>
-
-      <p id="speed">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_speed">Speed</a>
-      </p>
-      <div class="collapse" id="collapse_speed">
-        <li><a href="/docs/Theta/ThetaUpdateSpeed.html">Update Speed</a></li>
-        <li><a href="/docs/Theta/ThetaMergeSpeed.html">Merge Speed</a></li>
-      </div>
-
-      <p id="theta-sketch-theory">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_theta_sketch_theory">Theta Sketch Theory</a>
-      </p>
-      <div class="collapse" id="collapse_theta_sketch_theory">
-        <li><a href="https://github.com/DataSketches/DataSketches.github.io/blob/master/docs/pdf/ThetaSketchFramework.pdf">Theta Sketch Framework (PDF)</a></li>
-        <li><a href="https://github.com/DataSketches/DataSketches.github.io/blob/master/docs/pdf/SketchEquations.pdf">Sketch Equations (PDF)</a></li>
-        <li><a href="https://github.com/DataSketches/DataSketches.github.io/blob/master/docs/pdf/DataSketches.pdf">DataSketches (PDF)</a></li>
-        <li><a href="/docs/Theta/ThetaConfidenceIntervals.html">Confidence Intervals Notes</a></li>
-        <li><a href="/docs/Theta/ThetaMergingAlgorithm.html">Merging Algorithm Notes</a></li>
-        <li><a href="/docs/Theta/ThetaReferences.html">Theta References</a></li>
-      </div>
-    </div>
-
-    <p id="tuple-sketches">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_tuple_sketches">Tuple Sketches</a>
-    </p>
-    <div class="collapse" id="collapse_tuple_sketches">
-      <li><a href="/docs/Tuple/TupleOverview.html">Tuple Overview</a></li>
-
-      <p id="tuple-examples">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_tuple_examples">Tuple Examples</a>
-      </p>
-      <div class="collapse" id="collapse_tuple_examples">
-        <li><a href="/docs/Tuple/TupleJavaExample.html">Tuple Java Example</a></li>
-        <li><a href="/docs/Tuple/TupleEngagementExample.html">Tuple Engagement Example</a></li>
-        <li><a href="/docs/Frequency/FrequentDistinctTuplesSketch.html">Frequent Distinct Tuples Sketch</a></li>
-        <li><a href="/docs/Tuple/TuplePigUDFs.html">Tuple Pig UDFs</a></li>
-        <li><a href="/docs/Tuple/TupleHiveUDFs.html">Tuple Hive UDFs</a></li>
-        <li><a href="/docs/DruidIntegration.html">Using Sketches in Druid</a></li>
-      </div>
-    </div>
-  </div>
-
-  <p id="most-frequent">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_most_frequent">Most Frequent</a>
-  </p>
-  <div class="collapse" id="collapse_most_frequent">
-    <li><a href="/docs/Frequency/FrequencySketchesOverview.html">Frequency Sketches Overview</a></li>
-
-    <p id="frequent-item-sketches">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_frequent_item_sketches">Frequent Item Sketches</a>
-    </p>
-    <div class="collapse" id="collapse_frequent_item_sketches">
-      <li><a href="/docs/Frequency/FrequentItemsOverview.html">Frequent Items Overview</a></li>
-      <li><a href="/docs/Frequency/FrequentItemsErrorTable.html">Frequent Items Error Table</a></li>
-      <li><a href="/docs/Frequency/FrequentItemsReferences.html">Frequent Items References</a></li>
-
-      <p id="most-frequent-examples">
-        <a data-toggle="collapse" class="menu collapsed" href="#collapse_most_frequent_examples">Most Frequent Examples</a>
-      </p>
-      <div class="collapse" id="collapse_most_frequent_examples">
-        <li><a href="/docs/Frequency/FrequentItemsJavaExample.html">Frequent Items Java Example</a></li>
-        <li><a href="/docs/Frequency/FrequentItemsPigUDFs.html">Frequent Items Pig UDFs</a></li>
-        <li><a href="/docs/Frequency/FrequentItemsHiveUDFs.html">Frequent Items Hive UDFs</a></li>
-        <li><a href="/docs/DruidIntegration.html">Using Sketches in Druid</a></li>
-      </div>
-    </div>
-
-    <p id="frequent-distinct-sketches">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_frequent_distinct_sketches">Frequent Distinct Sketches</a>
-    </p>
-    <div class="collapse" id="collapse_frequent_distinct_sketches">
-      <li><a href="/docs/Frequency/FrequentDistinctTuplesSketch.html">Frequent Distinct Tuples Sketch</a></li>
-    </div>
-  </div>
-
-  <p id="quantiles-and-histograms">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_and_histograms">Quantiles And Histograms</a>
-  </p>
-  <div class="collapse" id="collapse_quantiles_and_histograms">
-    <li><a href="/docs/Quantiles/QuantilesOverview.html">Quantiles Overview</a></li>
-    <li><a href="/docs/Quantiles/QuantilesAccuracy.html">Quantiles Accuracy and Size</a></li>
-
-    <p id="quantiles-examples">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_examples">Quantiles Examples</a>
-    </p>
-    <div class="collapse" id="collapse_quantiles_examples">
-      <li><a href="/docs/Quantiles/QuantilesJavaExample.html">Quantiles Sketch Java Example</a></li>
-      <li><a href="/docs/Quantiles/QuantilesPigUDFs.html">Quantiles Sketch Pig UDFs</a></li>
-      <li><a href="/docs/Quantiles/QuantilesHiveUDFs.html">Quantiles Sketch Hive UDFs</a></li>
-      <li><a href="/docs/DruidIntegration.html">Using Sketches in Druid</a></li>
-    </div>
-
-    <p id="quantiles-studies">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_studies">Quantiles Studies</a>
-    </p>
-    <div class="collapse" id="collapse_quantiles_studies">
-      <li><a href="/docs/Quantiles/KLLSketch.html">New KLL sketch and comparison with DoublesSketch</a></li>
-      <li><a href="/docs/Quantiles/KllSketchVsTDigest.html">KLL sketch vs t-digest</a></li>
-      <li><a href="/docs/Quantiles/DruidApproxHistogramStudy.html">Druid Approximate Histogram</a></li>
-      <li><a href="/docs/Quantiles/MomentsSketchStudy.html">Moments Sketch Study</a></li>
-      <li><a href="/docs/Quantiles/QuantilesStreamAStudy.html">Quantiles StreamA Study</a></li>
-    </div>
-
-    <p id="quantiles-sketch-theory">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_quantiles_sketch_theory">Quantiles Sketch Theory</a>
-    </p>
-    <div class="collapse" id="collapse_quantiles_sketch_theory">
-      <li><a href="https://github.com/DataSketches/DataSketches.github.io/blob/master/docs/pdf/Quantiles_KLL.pdf">Optimal Quantile Approximation in Streams</a></li>
-      <li><a href="/docs/Quantiles/QuantilesReferences.html">Quantiles References</a></li>
-    </div>
-  </div>
-
-  <p id="sampling">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_sampling">Sampling</a>
-  </p>
-  <div class="collapse" id="collapse_sampling">
-    <li><a href="/docs/Sampling/ReservoirSampling.html">Reservoir Sampling</a></li>
-    <li><a href="/docs/Sampling/ReservoirSamplingPerformance.html">Reservoir Sampling Performance</a></li>
-    <li><a href="/docs/Sampling/VarOptSampling.html">VarOpt Sampling</a></li>
-
-    <p id="sampling-examples">
-      <a data-toggle="collapse" class="menu collapsed" href="#collapse_sampling_examples">Sampling Examples</a>
-    </p>
-    <div class="collapse" id="collapse_sampling_examples">
-      <li><a href="/docs/Sampling/ReservoirSamplingJava.html">Reservoir Sampling Java Example</a></li>
-      <li><a href="/docs/Sampling/ReservoirSamplingPigUDFs.html">Reservoir Sampling Pig UDFs</a></li>
-      <li><a href="/docs/Sampling/VarOptSamplingJava.html">VarOpt Sampling Java Example</a></li>
-      <li><a href="/docs/Sampling/VarOptPigUDFs.html">VarOpt Sampling Pig UDFs</a></li>
-    </div>
-  </div>
-
-  <p id="memory-package">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_memory_package">Memory Package</a>
-  </p>
-  <div class="collapse" id="collapse_memory_package">
-    <li><a href="/docs/Memory/MemoryPackage.html">Memory Package</a></li>
-    <li><a href="/docs/Memory/MemoryPerformance.html">Memory Package Performance</a></li>
-  </div>
-
-  <p id="command-line">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_command_line">Command Line</a>
-  </p>
-  <div class="collapse" id="collapse_command_line">
-    <li><a href="/docs/CommandLine/CommandLine.html">Creating Command Line Executables</a></li>
-  </div>
-
-  <p id="who-uses">
-    <a data-toggle="collapse" class="menu collapsed" href="#collapse_who_uses">Who Uses</a>
-  </p>
-  <div class="collapse" id="collapse_who_uses">
-    <li><a href="/docs/WhoUses.html">Who Uses</a></li>
-  </div>
-</div>
-<script>
-  (function () {
-
-    var findLineItem = function (path) {
-      return document.querySelector(`[href="${path}"]`);
-    };
-
-    var highlighLineItem = function (element) {
-      element.classList.add('highlight');
-    };
-
-    var checkHasClass = function (element, className) {
-      return element.className.split(' ').find(function (item) { return item === className || '' })
-    }
-
-    var findAllCollapseParents = function (element) {
-      var collapseMenus = [];
-      var elementPointer = element;
-      while (elementPointer !== document.body) {
-        if (checkHasClass(elementPointer, 'collapse')) {
-          collapseMenus.push(elementPointer);
-        }
-        elementPointer = elementPointer.parentElement
-      }
-      return collapseMenus
-    };
-
-    var findMatchingCollapseMenu = function (collapseItem) {
-      return document.querySelector(`[href="#${collapseItem.id}"]`);
-    };
-
-    var findAllParentMenus = function (element) {
-      var parentMenus = []
-      var elementPointer = element;
-      while (elementPointer !== document.body) {
-        if (elementPointer.className.split(' ').indexOf('menu') > -1) {
-          parentMenus.push(elementPointer);
-        }
-        elementPointer = elementPointer.parentElement;
-      }
-      return parentMenus;
-    }
-
-    var openMenuItem = function (element) {
-      element.click();
-    };
-
-    var openAllFromList = function (elementList) {
-      elementList.forEach(function (element) {
-        console.log(element)
-        openMenuItem(findMatchingCollapseMenu(element))
-      });
-    };
-
-    var highlightAndOpenMenu = function () {
-      var currentLineItem = findLineItem(document.location.pathname);
-      highlighLineItem(currentLineItem)
-      openAllFromList(findAllCollapseParents(currentLineItem));
-    };
-
-    $(highlightAndOpenMenu);
-
-  }());
-</script>
-
-
-      </div>
-      <div class="col-md-9 doc-content">
-        <a class="btn btn-default btn-xs visible-xs-inline-block visible-sm-inline-block" href="/docs/toc.html">Table of Contents</a>
-        <!--
-    Licensed to the Apache Software Foundation (ASF) under one
-    or more contributor license agreements.  See the NOTICE file
-    distributed with this work for additional information
-    regarding copyright ownership.  The ASF licenses this file
-    to you under the Apache License, Version 2.0 (the
-    "License"); you may not use this file except in compliance
-    with the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing,
-    software distributed under the License is distributed on an
-    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-    KIND, either express or implied.  See the License for the
-    specific language governing permissions and limitations
-    under the License.
--->
-
-<h1 id="apache-datasketches-incubating">Apache DataSketches (incubating)</h1>
-<h2 id="a-software-library-of-stochastic-streaming-algorithms">A software library of stochastic streaming algorithms</h2>
-
-<p>Apache DataSketches is an open source, high-performance library of stochastic streaming algorithms commonly called “sketches” in the data sciences. Sketches are small, stateful programs that process massive data as a stream and provide approximate answers, with mathematical guarantees, to computationally difficult queries orders-of-magnitude faster than traditional, exact methods.</p>
-
-<p>After 8 years of development and 5 years as in Open Source, we have begun the important migration from a stand-alone GitHub site to being a member of the Apache Software Foundation community.  While we undergo this migration, we beg your patience.</p>
-
-<ul>
-  <li>Ways to contact us:
-    <ul>
-      <li>We have two ASF <a href="http://the-ASF.slack.com">the-ASF.slack.com</a> slack channels:
-        <ul>
-          <li>datasketches – general user questions</li>
-          <li>datasketches-dev – similar to our Apache <a href="mailto:dev@datasketches.apache.org">dev@datasketches.apache.org</a>, except more interactive, but not as easily searchable.</li>
-        </ul>
-      </li>
-      <li>For discussions about problems with any of our sketch repository components (core-java, core-cpp, Hive, Pig, Vector, Android, etc.)
-        <ul>
-          <li><a href="https://groups.google.com/forum/#!forum/sketches-user">Google-groups forum</a></li>
-        </ul>
-      </li>
-      <li>For issues about a specific component, please open issues on the appropriate GitHub repository (listed below).</li>
-      <li>If you wish to contribute to our sketch development please contact us on our development email list
-        <ul>
-          <li><a href="mailto:dev@datasketches.apache.org">dev@datasketches.apache.org</a></li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li>Finding our code releases:
-    <ul>
-      <li>Apache releases (versions 1.X.X):
-        <ul>
-          <li>Zip source: <a href="https://dist.apache.org/repos/dist/release/incubator/datasketches/">dist.apache.org/repos/dist/release/incubator/datasketches/</a></li>
-          <li>Jar Artifacts (Java only): <a href="https://repository.apache.org/#nexus-search;quick~datasketches">repository.apache.org/#nexus-search;quick~datasketches</a></li>
-        </ul>
-      </li>
-      <li>Pre-Apache releases (versions 0.X.X)
-        <ul>
-          <li>Jar Artifacts (Java only): <a href="https://search.maven.org/classic/#search%7Cga%7C1%7Ccom.yahoo.datasketches">search.maven.org/classic/#search%7Cga%7C1%7Ccom.yahoo.datasketches</a></li>
-        </ul>
-      </li>
-    </ul>
-  </li>
-  <li>
-    <p>As the repositories under GitHub.io/DataSketches migrate they will disapear from the the GitHub.com/DataSketches organization page. Please refer to this list be directed to the proper locations.</p>
-  </li>
-  <li>Web Sites
-    <ul>
-      <li><a href="http://DataSketches.GitHub.io">Original Website</a></li>
-      <li><a href="https://datasketches.apache.org">New Website</a></li>
-      <li><a href="https://github.com/DataSketches/DataSketches.github.io">Original Website Source</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-website">New Website Source</a></li>
-    </ul>
-  </li>
-  <li>Java
-    <ul>
-      <li><a href="https://github.com/apache/incubator-datasketches-memory">memory now incubator-datasketches-memory</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-java">sketches-core now incubator-datasketches-java</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-hive">sketches-hive now incubator-datasketches-hive</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-pig">sketches-pig now incubator-datasketches-pig</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-vector">sketches-vector now incubator-datasketches-vector</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-characterization">characterization now incubator-datasketches-characterization</a></li>
-    </ul>
-  </li>
-  <li>C++
-    <ul>
-      <li><a href="https://github.com/apache/incubator-datasketches-cpp">sketches-core-cpp now incubator-datasketches-cpp</a></li>
-      <li><a href="https://github.com/apache/incubator-datasketches-postgresql">sketches-postgres now incubator-datasketches-postgresql</a></li>
-    </ul>
-  </li>
-  <li>Java/C++/Python (the following may be moved to Apache later)
-    <ul>
-      <li><a href="https://github.com/DataSketches/sketches-misc">sketches-misc</a></li>
-      <li><a href="https://github.com/DataSketches/sketches-android">sketches-android</a></li>
-      <li><a href="https://github.com/DataSketches/experimental">experimental</a></li>
-      <li><a href="https://github.com/DataSketches/characterization-cpp">characterization-cpp</a></li>
-      <li><a href="https://github.com/DataSketches/experimental-cpp">experimental-cpp</a></li>
-    </ul>
-  </li>
-  <li>Command Line (These may move to Apache later or replaced by Python)
-    <ul>
-      <li><a href="https://github.com/DataSketches/homebrew-sketches-cmd">homebrew-sketches-cmd</a></li>
-      <li><a href="https://github.com/DataSketches/sketches-cmd">sketches-cmd</a></li>
-      <li><a href="https://github.com/DataSketches/homebrew-sketches">homebrew-sketches</a></li>
-    </ul>
-  </li>
-</ul>
-
-<hr />
-
-<p>Disclaimer: Apache DataSketches is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indic [...]
-
-      </div>
-    </div>
-  </div>
-
-  <!-- Start page_footer.html include -->
-<footer class="ds-footer">
-  <div class="container">
-    <div class="text-center">
-      <p>
-        <a href="/overview.html">
-          <span class="fa fa-info-circle"></span> Overview</a>&ensp;·&ensp;
-        <a href="/docs/downloads.html">
-          <span class="fa fa-download"></span> Download</a>&ensp;·&ensp;
-        <a href="https://github.com/apache?utf8=%E2%9C%93&q=datasketches">
-          <span class="fa fa-github"></span> GitHub</a>&ensp;·&ensp;
-        <a href="https://groups.google.com/forum/#!forum/sketches-user">
-          <span class="fa fa-comment"></span> Comments</a>&ensp;·&ensp;
-        <a href="https://github.com/apache/incubator-datasketches-website/blob/asf-site/LICENSE">Licensing</a>
-      </p>
-    </div>
-  </div>
-</footer>
-<!-- End page_footer.html include -->
-
-</body>
-
-</html>
-<!-- End _layouts/doc_page.html-->
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 9c1939c..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,630 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" 
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>21</version>
-  </parent>
-  <groupId>org.apache.datasketches</groupId>
-
-  <!-- UNIQUE FOR THIS JAVA COMPONENT -->
-  <artifactId>datasketches-website</artifactId>
-  <version>1.0.0-incubating-SNAPSHOT</version>
-  <description>Website source for the DataSketches library.</description>
-  <!-- END: UNIQUE FOR THIS JAVA COMPONENT -->
-
-  <url>https://datasketches.apache.org/</url>
-  <name>${project.artifactId}</name>
-  <inceptionYear>2015</inceptionYear>
-  <packaging>jar</packaging>
-  <!-- jar is the default -->
-  <!-- With the 3.6.1 version of Maven this causes a warning to obsolete this in
-         favor of using the enforcer plugin (which we do).  But removing this
-         causes the command "mvn versions:display-plugin-updates" to issue an error 
-         and not work properly. So this will stay for the time being. 
-  -->
-  <prerequisites>
-    <maven>3.2.0</maven>
-  </prerequisites>
-  <licenses>
-    <license>
-      <name>Apache License, Version 2.0</name>
-      <url>https://www.apache.org/licenses/LICENSE-2.0</url>
-      <distribution>repo</distribution>
-    </license>
-  </licenses>
-  <scm>
-    <connection>scm:git:ssh://git@github.com/apache/incubator-${project.artifactId}.git</connection>
-    <developerConnection>scm:git:ssh://git@github.com/apache/incubator-${project.artifactId}.git</developerConnection>
-    <url>https://github.com/apache/incubator-${project.artifactId}</url>
-    <tag>HEAD</tag>
-  </scm>
-  <issueManagement>
-    <!-- <system>jira</system>
-      <url>https://issues.apache.org/jira/browse/DATASKETCHES</url> -->
-    <system>GitHub</system>
-    <url>https://github.com/apache/incubator-${project.artifactId}/issues</url>
-  </issueManagement>
-  <mailingLists>
-    <mailingList>
-      <name>DataSketches Developers</name>
-      <subscribe>dev-subscribe@datasketches.apache.org</subscribe>
-      <unsubscribe>dev-unsubscribe@datasketches.apache.org</unsubscribe>
-      <post>dev@datasketches.apache.org</post>
-      <archive>https://mail-archives.apache.org/mod_mbox/datasketches-dev</archive>
-    </mailingList>
-    <mailingList>
-      <name>sketches-user</name>
-      <archive>https://groups.google.com/forum/#!forum/sketches-user</archive>
-      <subscribe>mailto:sketches-user%2Bsubscribe@googlegroups.com</subscribe>
-      <unsubscribe>mailto:sketches-user%2Bunsubscribe@googlegroups.com</unsubscribe>
-      <post>mailto:sketches-user@googlegroups.com</post>
-    </mailingList>
-  </mailingLists>
-  <developers>
-    <developer>
-      <name>The Apache DataSketches Team</name>
-      <email>dev@datasketches.apache.org</email>
-      <url>https://datasketches.apache.org</url>
-      <organization>Apache Software Foundation</organization>
-      <organizationUrl>http://www.apache.org</organizationUrl>
-    </developer>
-  </developers>
-  <properties>
-
-    <!-- UNIQUE FOR THIS JAVA COMPONENT -->
-        <org-json.version>20180813</org-json.version>
-    <!-- END:UNIQUE FOR THIS JAVA COMPONENT -->
-
-    <!-- Test -->
-    <testng.version>6.14.3</testng.version>
-    <!-- System-wide properties -->
-    <argLine>-Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8</argLine>
-    <charset.encoding>UTF-8</charset.encoding>
-    <project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding>
-    <project.build.resourceEncoding>${charset.encoding}</project.build.resourceEncoding>
-    <project.reporting.outputEncoding>${charset.encoding}</project.reporting.outputEncoding>
-    <java.version>1.8</java.version>
-    <maven.compiler.source>${java.version}</maven.compiler.source>
-    <maven.compiler.target>${java.version}</maven.compiler.target>
-    <!-- org.codehaus.plexus used for strict profile testing-->
-    <plexus-compiler-javac-errorprone.version>2.8.5</plexus-compiler-javac-errorprone.version>
-    <!--  Maven Plugins -->
-    <maven-assembly-plugin.version>3.1.1</maven-assembly-plugin.version>
-    <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
-    <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version>
-    <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
-    <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
-    <maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
-    <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
-    <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
-    <maven-remote-resources-plugin.version>[1.0,)</maven-remote-resources-plugin.version>
-    <maven-source-plugin.version>3.1.0</maven-source-plugin.version>
-    <maven-surefire-plugin.version>3.0.0-M3</maven-surefire-plugin.version>
-    <!-- Apache Plugins -->
-    <apache-rat-plugin.version>0.13</apache-rat-plugin.version>
-    <!-- org.jacoco Maven Plugins -->
-    <jacoco-maven-plugin.version>0.8.4</jacoco-maven-plugin.version>
-    <!-- org.eluder Maven Plugins -->
-    <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
-    <!-- other -->
-    <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
-    <git-commit-id-plugin.version>3.0.0</git-commit-id-plugin.version>
-  </properties>
-  <repositories>
-    <repository>
-      <id>apache.snapshots</id>
-      <name>Apache Snapshot Repository</name>
-      <url>https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <id>apache</id>
-      <name>Apache Releases Repository</name>
-      <url>https://repository.apache.org/content/repositories/releases/org/apache/datasketches/</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-  <dependencies>
-
-    <!-- UNIQUE FOR THIS JAVA COMPONENT -->
-    <!-- org.json -->
-    <dependency>
-        <groupId>org.json</groupId>
-        <artifactId>json</artifactId>
-        <version>${org-json.version}</version>
-    </dependency>
-    <!-- END: UNIQUE FOR THIS JAVA COMPONENT -->
-
-    <!-- Test Scope -->
-    <dependency>
-      <groupId>org.testng</groupId>
-      <artifactId>testng</artifactId>
-      <version>${testng.version}</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <!-- We want to deploy the artifacts to a staging location for perusal -->
-          <!-- Apache Parent pom: apache-release profile -->
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-deploy-plugin</artifactId>
-          <version>${maven-deploy-plugin.version}</version>
-          <configuration>
-            <updateReleaseInfo>true</updateReleaseInfo>
-            <!-- see maven-install-plugin -->
-          </configuration>
-        </plugin>
-        <plugin>
-          <!-- Apache Parent pom, pluginManagement-->
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-release-plugin</artifactId>
-          <version>${maven-release-plugin.version}</version>
-        </plugin>
-        <plugin>
-          <!-- Extends Apache Parent pom, pluginManagement-->
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>${maven-jar-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>default-jar</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-            </execution>
-            <execution>
-              <id>default-test-jar</id>
-              <goals>
-                <goal>test-jar</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <!-- Extends Apache Parent pom, apache-release profile -->
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>${maven-javadoc-plugin.version}</version>
-          <configuration>
-            <docfilessubdirs>true</docfilessubdirs>
-          </configuration>
-          <executions>
-            <execution>
-              <id>attach-javadocs</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-enforcer-plugin</artifactId>
-          <version>${maven-enforcer-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>enforce-banned-dependencies</id>
-              <goals>
-                <goal>enforce</goal>
-              </goals>
-              <configuration>
-                <rules>
-                  <requireJavaVersion>
-                    <version>1.8.0</version>
-                  </requireJavaVersion>
-                  <requireMavenVersion>
-                    <version>3.2,</version>
-                  </requireMavenVersion>
-                  <bannedDependencies>
-                    <excludes>
-                      <!--LGPL licenced library-->
-                      <exclude>com.google.code.findbugs:annotations</exclude>
-                    </excludes>
-                  </bannedDependencies>
-                </rules>
-                <fail>true</fail>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <!-- Apache Parent pom, pluginManagement-->
-          <groupId>org.apache.rat</groupId>
-          <artifactId>apache-rat-plugin</artifactId>
-          <version>${apache-rat-plugin.version}</version>
-          <executions>
-            <execution>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <outputDirectory>${project.basedir}/rat</outputDirectory>
-            <consoleOutput>true</consoleOutput>
-            <useDefaultExcludes>true</useDefaultExcludes>
-            <excludes>
-              <!-- rat uses .gitignore for excludes by default -->
-              <exclude>**/test/resources/**/*.txt</exclude>
-              <!-- UNIQUE FOR THIS JAVA COMPONENT -->
-              <exclude>**/*.txt</exclude>
-              <exclude>**/*.html</exclude>
-              <exclude>**/*.css</exclude>
-              <exclude>**/*.js</exclude>
-              <exclude>**/*.lock</exclude>
-              <exclude>**/*.json</exclude>
-              <exclude>**/package-list</exclude>
-              <!-- END: UNIQUE FOR THIS JAVA COMPONENT -->
-              <exclude>LICENSE</exclude>
-              <exclude>NOTICE</exclude>
-              <exclude>DISCLAIMER-WIP</exclude>
-            </excludes>
-          </configuration>
-        </plugin>
-        <plugin>
-          <!-- Extends Apache Parent pom, apache-release profile -->
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-source-plugin</artifactId>
-          <version>${maven-source-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>attach-sources</id>
-              <phase>package</phase>
-              <goals>
-                <goal>jar-no-fork</goal>
-              </goals>
-            </execution>
-            <execution>
-              <id>attach-test-sources</id>
-              <phase>package</phase>
-              <goals>
-                <goal>test-jar-no-fork</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <!-- Apache Parent pom, pluginManagement-->
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${maven-surefire-plugin.version}</version>
-          <configuration>
-            <trimStackTrace>false</trimStackTrace>
-            <useManifestOnlyJar>false</useManifestOnlyJar>
-            <redirectTestOutputToFile>true</redirectTestOutputToFile>
-          </configuration>
-        </plugin>
-        <plugin>
-          <!-- Generates code coverage report from website. -->
-          <groupId>org.jacoco</groupId>
-          <artifactId>jacoco-maven-plugin</artifactId>
-          <version>${jacoco-maven-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>prepare-agent</id>
-              <goals>
-                <goal>prepare-agent</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <!-- Submit code coverage report to Coveralls.io. -->
-          <groupId>org.eluder.coveralls</groupId>
-          <artifactId>coveralls-maven-plugin</artifactId>
-          <version>${coveralls-maven-plugin.version}</version>
-          <configuration>
-            <!-- Since we use Travis CI we do not have to put a Coveralls token here. -->
-          </configuration>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-deploy-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-release-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-enforcer-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.jacoco</groupId>
-        <artifactId>jacoco-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.eluder.coveralls</groupId>
-        <artifactId>coveralls-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </build>
-  <profiles>
-    <!-- Ignore nuisance warning from Apache parent plugin: 
-          "maven-remote-resources-plugin (goal "process") is ignored by m2e".
-          This also should fix the Maven warning that it can't find the lifecycle-mapping jar.
-          This profile is only active when the property "m2e.version" is set, 
-          which is the case when building in Eclipse with m2e.
-          The ignore below tells m2eclipse to skip the execution.
-    -->
-    <profile>
-      <id>m2e</id>
-      <activation>
-        <property>
-          <name>m2e.version</name>
-        </property>
-      </activation>
-      <build>
-        <pluginManagement>
-          <plugins>
-            <plugin>
-              <groupId>org.eclipse.m2e</groupId>
-              <artifactId>lifecycle-mapping</artifactId>
-              <version>${lifecycle-mapping.version}</version>
-              <configuration>
-                <lifecycleMappingMetadata>
-                  <pluginExecutions>
-                    <pluginExecution>
-                      <pluginExecutionFilter>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-remote-resources-plugin</artifactId>
-                        <versionRange>${maven-remote-resources-plugin.version}</versionRange>
-                        <goals>
-                          <goal>process</goal>
-                        </goals>
-                      </pluginExecutionFilter>
-                      <action>
-                        <ignore/>
-                      </action>
-                    </pluginExecution>
-                  </pluginExecutions>
-                </lifecycleMappingMetadata>
-              </configuration>
-            </plugin>
-          </plugins>
-        </pluginManagement>
-      </build>
-    </profile>
-    <profile>
-      <id>strict</id>
-      <build>
-        <pluginManagement>
-          <plugins>
-            <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-compiler-plugin</artifactId>
-              <version>${maven-compiler-plugin.version}</version>
-              <dependencies>
-                <dependency>
-                  <groupId>org.codehaus.plexus</groupId>
-                  <artifactId>plexus-compiler-javac-errorprone</artifactId>
-                  <version>${plexus-compiler-javac-errorprone.version}</version>
-                </dependency>
-              </dependencies>
-              <configuration>
-                <source>${maven.compiler.source}</source>
-                <target>${maven.compiler.target}</target>
-                <compilerId>javac-with-errorprone</compilerId>
-                <forceJavacCompilerUse>true</forceJavacCompilerUse>
-              </configuration>
-            </plugin>
-          </plugins>
-        </pluginManagement>
-      </build>
-    </profile>
-    <!--  This profile is used to release signed jars to the Apache Nexus repository. 
-          This must be executed from a git repository set at the proper Release branch (e.g., 1.1.X-incubating) 
-          and at a Release Candidate tag (e.g., 1.1.0-incubating-RC1).
-          The pom version in the release branch must be properly set to something like: "1.1.0-incubating".
-          The pom version in the master would be set to something like: "1.2.0-incubating-SNAPSHOT".
-          Test Command: mvn clean verify -Pnexus-jars -DskipTests=true
-          Command: mvn clean deploy -Dnexus-jars
-          Verify Command (from terminal): gpg -v &#45;&#45;verify $ASC $FILE # dashdashverify
-    -->
-    <profile>
-      <id>nexus-jars</id>
-      <build>
-        <pluginManagement>
-          <plugins>
-            <plugin>
-              <groupId>pl.project13.maven</groupId>
-              <artifactId>git-commit-id-plugin</artifactId>
-              <version>${git-commit-id-plugin.version}</version>
-              <executions>
-                <execution>
-                  <goals>
-                    <goal>revision</goal>
-                  </goals>
-                  <phase>initialize</phase>
-                </execution>
-              </executions>
-              <configuration>
-                <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
-                <dateFormatTimeZone>UTC</dateFormatTimeZone>
-                <verbose>false</verbose>
-                <skipPoms>false</skipPoms>
-                <format>json</format>
-                <generateGitPropertiesFile>true</generateGitPropertiesFile>
-                <generateGitPropertiesFilename>${project.build.directory}/git.properties</generateGitPropertiesFilename>
-                <failOnNoGitDirectory>true</failOnNoGitDirectory>
-                <failOnUnableToExtractRepoInfo>true</failOnUnableToExtractRepoInfo>
-                <commitIdGenerationMode>full</commitIdGenerationMode>
-                <includeOnlyProperties>
-                  <includeProperty>git.branch</includeProperty>
-                  <includeProperty>git.commit.id.full</includeProperty>
-                  <includeProperty>git.commit.time</includeProperty>
-                  <includeProperty>git.commit.user.email</includeProperty>
-                  <includeProperty>git.tags</includeProperty>
-                </includeOnlyProperties>
-                <gitDescribe>
-                  <skip>false</skip>
-                  <always>true</always>
-                  <abbrev>7</abbrev>
-                  <dirty>-dirty</dirty>
-                  <tags>true</tags>
-                  <forceLongFormat>true</forceLongFormat>
-                </gitDescribe>
-              </configuration>
-            </plugin>
-            <!-- Extends Apache Parent pom, pluginManagement-->
-            <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-jar-plugin</artifactId>
-              <version>${maven-jar-plugin.version}</version>
-              <executions>
-                <execution>
-                  <id>default-jar</id>
-                  <goals>
-                    <goal>jar</goal>
-                  </goals>
-                </execution>
-                <execution>
-                  <id>default-test-jar</id>
-                  <goals>
-                    <goal>test-jar</goal>
-                  </goals>
-                </execution>
-              </executions>
-              <configuration>
-                <injectAllReactorProjects>true</injectAllReactorProjects>
-                <archive>
-                  <manifest>
-                    <addDefaultEntries>false</addDefaultEntries>
-                    <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
-                    <addDefaultImplementationEntries>false</addDefaultImplementationEntries>
-                  </manifest>
-                  <manifestEntries>
-                    <Build-Jdk>${java.version} (${java.vendor} ${java.vm.version})</Build-Jdk>
-                    <Build-OS>${os.name} ${os.arch} ${os.version}</Build-OS>
-                    <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
-                    <GroupId-ArtifactId>${project.groupId}:${project.artifactId}</GroupId-ArtifactId>
-                    <git-branch>${git.branch}</git-branch>
-                    <git-commit-id>${git.commit.id.full}</git-commit-id>
-                    <git-commit-time>${git.commit.time}</git-commit-time>
-                    <git-commit-user-email>${git.commit.user.email}</git-commit-user-email>
-                    <git-commit-tag>${git.tags}</git-commit-tag>
-                  </manifestEntries>
-                </archive>
-              </configuration>
-            </plugin>
-            <!-- We want to sign the artifacts, POM, and all attached artifacts -->
-            <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-gpg-plugin</artifactId>
-              <version>${maven-gpg-plugin.version}</version>
-              <executions>
-                <execution>
-                  <id>sign-artifacts</id>
-                  <phase>verify</phase>
-                  <goals>
-                    <goal>sign</goal>
-                  </goals>
-                </execution>
-              </executions>
-              <configuration>
-                <gpgArguments>
-                  <arg>--verbose</arg>
-                  <!-- prints the algorithm used -->
-                  <arg>--personal-digest-preferences=SHA512</arg>
-                </gpgArguments>
-              </configuration>
-            </plugin>
-          </plugins>
-        </pluginManagement>
-        <plugins>
-          <plugin>
-            <groupId>pl.project13.maven</groupId>
-            <artifactId>git-commit-id-plugin</artifactId>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-jar-plugin</artifactId>
-          </plugin>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-gpg-plugin</artifactId>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <!-- Disable source release assembly for 'apache-release' profile. 
-             This is performed from a script outside Maven
-    -->
-    <profile>
-      <id>apache-release</id>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-assembly-plugin</artifactId>
-            <version>${maven-assembly-plugin.version}</version>
-            <executions>
-              <execution>
-                <id>source-release-assembly</id>
-                <phase>none</phase>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-</project>
diff --git a/script/cibuild b/script/cibuild
deleted file mode 100644
index 540ffd6..0000000
--- a/script/cibuild
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-set -e # halt script on error
-
-bundle exec jekyll build
-#bundle exec htmlproofer ./_site --disable-external
-
diff --git a/src/main/java/org/apache/datasketches/ByteArrayBuilder.java b/src/main/java/org/apache/datasketches/ByteArrayBuilder.java
deleted file mode 100644
index 9935d61..0000000
--- a/src/main/java/org/apache/datasketches/ByteArrayBuilder.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches;
-
-import java.util.Arrays;
-
-/**
- * A mutable sequence of bytes.
- *
- * <p>Implements a modifiable byte array. At any point in time it contains some
- * particular sequence of bytes but the length and content of the sequence can
- * be changed through certain method calls.
- *
- * @author Lee Rhodes
- */
-@SuppressWarnings("javadoc")
-public class ByteArrayBuilder {
-  private byte[] arr_;
-  private int count_ = 0;
-  private int capacity_;
-
-  public ByteArrayBuilder() {
-    this(1024);
-  }
-
-  /**
-   * Constructs an empty ByteArrayBuilder with an initial capacity specified by
-   * the <code>capacity</code> argument.
-   *
-   * @param capacity the initial capacity.
-   * @throws NegativeArraySizeException if the <code>capacity</code> argument is
-   * less than <code>0</code>.
-   */
-  public ByteArrayBuilder(final int capacity) {
-    arr_ = new byte[capacity];
-  }
-
-  /**
-   * Returns the current capacity. The capacity is the amount of storage
-   * available for newly inserted bytes, beyond which an allocation will occur.
-   *
-   * @return the current capacity
-   */
-  public int capacity() {
-    return capacity_;
-  }
-
-  /**
-   * Returns the length (byte count).
-   *
-   * @return the length of the sequence of bytes currently represented by this
-   * object
-   */
-  public int length() {
-    return count_;
-  }
-
-  /**
-   * Ensures that the capacity is at least equal to the specified minimum. If
-   * the current capacity is less than the argument, then a new internal array
-   * is allocated with greater capacity. The new capacity is the larger of:
-   * <ul>
-   * <li>The <code>minimumCapacity</code> argument.
-   * <li>Twice the old capacity, plus <code>2</code>.
-   * </ul>
-   * If the <code>minimumCapacity</code> argument is nonpositive, this method
-   * takes no action and simply returns.
-   *
-   * @param minimumCapacity the minimum desired capacity.
-   */
-  public void ensureCapacity(final int minimumCapacity) {
-    if (minimumCapacity > arr_.length) {
-      expandCapacity(minimumCapacity);
-    }
-  }
-
-  /**
-   * This implements the expansion semantics of ensureCapacity with no size
-   * check or synchronization.
-   */
-  void expandCapacity(final int minimumCapacity) {
-    int newCapacity = (arr_.length + 1) * 2;
-    if (newCapacity < 0) {
-      newCapacity = Integer.MAX_VALUE;
-    } else if (minimumCapacity > newCapacity) {
-      newCapacity = minimumCapacity;
-    }
-    arr_ = Arrays.copyOf(arr_, newCapacity);
-  }
-
-  /**
-   * Ensures that the space remaining (capacity - count) is at least as large as
-   * the given space.
-   *
-   * @param space the given space in bytes
-   */
-  public void ensureSpace(final int space) {
-    final int newCount = count_ + space;
-    if (newCount > arr_.length) {
-      expandCapacity(newCount);
-    }
-  }
-
-  /**
-   * Appends the given byte to the end of the current byte sequence.
-   *
-   * @param b byte
-   * @return this ByteArrayBuilder
-   */
-  public ByteArrayBuilder append(final byte b) {
-    ensureSpace(1);
-    arr_[count_++] = b;
-    return this;
-  }
-
-  /**
-   * Appends the given byte array to the end of the current byte sequence.
-   *
-   * @param bArr byte array
-   * @return this ByteArrayBuilder
-   */
-  public ByteArrayBuilder append(final byte[] bArr) {
-    final int len = bArr.length;
-    ensureSpace(len);
-    System.arraycopy(bArr, 0, arr_, count_, len);
-    count_ += len;
-    return this;
-  }
-
-  /**
-   * Sets the length of the byte sequence. The sequence is changed to a new byte
-   * sequence whose length is specified by the argument. For every nonnegative
-   * index <i>k</i> less than <code>newLength</code>, the byte at index <i>k</i>
-   * in the new byte sequence is the same as the byte at index <i>k</i> in the
-   * old sequence if <i>k</i> is less than the length of the old byte sequence;
-   * otherwise, it is the null byte <code>0</code>.
-   *
-   * <p>In other words, if the <code>newLength</code> argument is less than the
-   * current length, the length is changed to the specified length.
-   *
-   * <p>If the <code>newLength</code> argument is greater than or equal to the
-   * current length, sufficient null byte (<code>0</code>) are appended so that
-   * length becomes the <code>newLength</code> argument.
-   *
-   * <p>The <code>newLength</code> argument must be greater than or equal to
-   * <code>0</code>.
-   *
-   * @param newLength the new length
-   * @throws IndexOutOfBoundsException if the <code>newLength</code> argument is
-   * negative.
-   */
-  public void setLength(final int newLength) {
-    if (newLength < 0) {
-      throw new ArrayIndexOutOfBoundsException(newLength);
-    }
-    if (newLength > arr_.length) {
-      expandCapacity(newLength);
-    }
-    if (count_ < newLength) {
-      for (; count_ < newLength; count_++) {
-        arr_[count_] = 0;
-      }
-    } else {
-      count_ = newLength;
-    }
-  }
-
-  /**
-   * Returns a byte array representing the data in this sequence. A new
-   * <code>byte[]</code> object is allocated and initialized to contain the byte
-   * sequence currently represented by this object. This <code>byte[]</code> is
-   * then returned. Subsequent changes to this sequence do not affect the
-   * contents of the <code>byte[]</code>.
-   *
-   * @return a byte array representation of this byte sequence.
-   */
-  public byte[] toByteArray() {
-    return Arrays.copyOf(arr_, count_);
-  }
-
-  /**
-   * Attempts to reduce storage used for the byte sequence. If the buffer is
-   * larger than necessary to hold its current sequence of bytes, then it may be
-   * resized to become more space efficient. Calling this method may, but is not
-   * required to, affect the value returned by a subsequent call to the
-   * {@link #capacity()} method.
-   */
-  public void trimToSize() {
-    if (count_ < arr_.length) {
-      arr_ = Arrays.copyOf(arr_, count_);
-    }
-  }
-}
diff --git a/src/main/java/org/apache/datasketches/Files.java b/src/main/java/org/apache/datasketches/Files.java
deleted file mode 100644
index cb94dcd..0000000
--- a/src/main/java/org/apache/datasketches/Files.java
+++ /dev/null
@@ -1,1040 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches;
-
-import static java.nio.channels.FileChannel.MapMode.READ_ONLY;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.RandomAccessFile;
-import java.io.Reader;
-import java.nio.BufferUnderflowException;
-import java.nio.ByteBuffer;
-import java.nio.MappedByteBuffer;
-import java.nio.channels.FileChannel;
-import java.nio.charset.Charset;
-import java.util.Arrays;
-
-/**
- * A collection of useful static file handlers that conveniently convert the
- * java.io checked exceptions into runtime exceptions.
- *
- * @author Lee Rhodes
- */
-@SuppressWarnings("javadoc")
-public final class Files {
-  private static final String LS = System.getProperty("line.separator");
-  private static final byte CR = 0xD;
-  private static final byte LF = 0xA;
-  public static final int DEFAULT_BUFSIZE = 8192;
-
-  // Common IO & NIO file methods
-
-  /**
-   * If the fileName string is null or empty, this method throws a
-   * RuntimeException.
-   *
-   * @param fileName the given fileName
-   * @throws RuntimeException if fileName is null or empty.
-   */
-  public static void checkFileName(final String fileName) {
-    if (fileName == null) {
-      throw new RuntimeException(LS + "FileName is null.");
-    }
-    if (fileName.length() == 0) {
-      throw new RuntimeException(LS + "FileName is empty.");
-    }
-    return;
-  }
-
-  /**
-   * Gets an existing normal file as a File. If fileName is null, or empty, or
-   * if the file is actually a directory, or doesn't exist this will throw a
-   * Runtime Exception; otherwise it will return the fileName as a File object.
-   *
-   * @param fileName the given fileName
-   * @return a File object
-   * @throws RuntimeException if fileName cannot resolve to a existing normal
-   * file.
-   */
-  public static File getExistingFile(final String fileName) {
-    checkFileName(fileName);
-    final File file = new File(fileName);
-    if (file.isFile()) {
-      return file;
-    }
-    if (file.isDirectory()) {
-      throw new RuntimeException(LS + "FileName is a Directory: " + fileName);
-    }
-
-    throw new RuntimeException(LS + "FileName does not exist: " + fileName);
-  }
-
-  /**
-   * Returns true if file is a normal file and not a directory.
-   *
-   * @param fileName the given fileName
-   * @return true if file is a normal file and not a directory.
-   * @throws RuntimeException if fileName is null or empty.
-   */
-  public static boolean isFileValid(final String fileName) {
-    checkFileName(fileName);
-    final File file = new File(fileName);
-    return file.isFile();
-  }
-
-  /**
-   * Gets the System.getProperty("user.dir"), which is the expected location of
-   * the user root directory.
-   *
-   * @return location of user root directory
-   */
-  public static String getUserDir() {
-    return System.getProperty("user.dir");
-  }
-
-  /**
-   * Opens a RandomAccessFile given a File object and String mode: "r", "rw",
-   * "rws" or "rwd". The returned object must be closed by the calling program.
-   *
-   * @param file the given file
-   * @param mode the given mode
-   * @return RandomAccessFile
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static RandomAccessFile openRandomAccessFile(final File file, final String mode) {
-    final RandomAccessFile raf;
-    try {
-      raf = new RandomAccessFile(file, mode);
-    } catch (final FileNotFoundException e) {
-      throw new RuntimeException(LS + "Failed to open RandomAccessFile " + LS + e);
-    }
-    return raf;
-  }
-
-  /**
-   * Gets the FileDescriptor from the given RandomAccessFile.
-   *
-   * @param raf RandomAccessFile
-   * @return the FileDescriptor
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static FileDescriptor getFD(final RandomAccessFile raf) {
-    FileDescriptor fd = null;
-    try {
-      fd = raf.getFD();
-    } catch (final IOException e) {
-      throw new RuntimeException(LS + "RandomAccessFile.getFD() failure" + LS + e);
-    }
-    return fd;
-  }
-
-  /**
-   * Sets the position of the given RandomAccessFile to the given position.
-   *
-   * @param raf RandomAccessFile
-   * @param position the given position
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static void seek(final RandomAccessFile raf, final long position) {
-    try {
-      raf.seek(position);
-    } catch (final IOException e) {
-      throw new RuntimeException(LS + "RandomAccessFile seek failure" + LS + e);
-    }
-  }
-
-  /**
-   * Reads buf.length bytes into the given buf.
-   *
-   * @param raf RandomAccessFile
-   * @param buf the size of this buffer is the number of bytes requested.
-   * @return the number of bytes actually read.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int readBytes(final RandomAccessFile raf, final byte[] buf) {
-    final int len = buf.length;
-    int read = 0;
-    try {
-      read = raf.read(buf);
-    } catch (final IOException e) {
-      throw new RuntimeException(LS + "RandomAccessFile read failure" + LS + e);
-    }
-    if (read < len) {
-      Arrays.fill(buf, read, len, (byte) 0);
-    }
-    return read;
-  }
-
-  // ************************
-  // NIO OPERATIONS
-  // ************************
-  // ByteBuffer methods
-  /**
-   * Gets a MappedByteBuffer from the given FileChannel, mode, position and
-   * size.
-   *
-   * @param fChan the given FileChannel
-   * @param mmode the given MapMode
-   * @param position the given position
-   * @param size the given size
-   * @return a MappedByteBuffer
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static MappedByteBuffer getMappedByteBuffer(final FileChannel fChan,
-      final FileChannel.MapMode mmode, final long position, final long size) {
-    final MappedByteBuffer mbBuf;
-    try {
-      mbBuf = fChan.map(mmode, position, size);
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-    return mbBuf;
-  }
-
-  /**
-   * Gets a MappedByteBuffer from the given FileChannel and mode. Assumes a
-   * start position of zero and size of the length of the file (via the
-   * FileChannel. Equivalent to:<br>
-   * getMappedByteBuffer(FileChannel, FileChanel.MapMode, 0L, size(fChan));
-   *
-   * @param fChan the given FileChannel
-   * @param mmode the given MapMode
-   * @return a MappedByteBuffer
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static MappedByteBuffer getMappedByteBuffer(final FileChannel fChan,
-      final FileChannel.MapMode mmode) {
-    return getMappedByteBuffer(fChan, mmode, 0L, size(fChan));
-  }
-
-  /**
-   * Reads bytes from the given (Mapped)ByteBuffer until either a CR, LF or CRLF
-   * is detected in the byte stream and then converts the captured bytes,
-   * excluding the CR and LF characters into a string. This method will work
-   * with US-ASCII, ISO-8859 families, Windows 1252, and UTF-8. encodings. In
-   * general any character encoding that is isomorphic with respect to the
-   * exclusive use of the CR (0xD) and the LF (0xA) codes. Equivalent to:<br>
-   * readLine(ByteBuffer, ByteArrayBuilder, Charset.defaultCharset());
-   *
-   * @param mbBuf Given ByteBuffer or MappedByteBuffer
-   * @param bab an optional ByteArrayBuilder for internal reuse, which will
-   * improve multi-line reading performance. The result of the read as an array
-   * of bytes is available from the bab.
-   * @return the line as a string
-   *
-   */
-  public static String readLine(final ByteBuffer mbBuf, final ByteArrayBuilder bab) {
-    return readLine(mbBuf, bab, Charset.defaultCharset());
-  }
-
-  /**
-   * Reads bytes from the given (Mapped)ByteBuffer until either a CR, LF or CRLF
-   * is detected in the byte stream and then converts the captured bytes,
-   * excluding the CR and LF characters into a string. This method will work
-   * with US-ASCII, ISO-8859 families, Windows 1252, and UTF-8. encodings. In
-   * general any character encoding that is isomorphic with respect to the
-   * exclusive use of the CR (0xD) and the LF (0xA) codes.
-   *
-   * @param mbBuf Given ByteBuffer or MappedByteBuffer
-   * @param bab an optional ByteArrayBuilder for internal reuse, which will
-   * improve multiline reading performance. The result of the read as an array
-   * of bytes is available from the bab.
-   * @param charset The Charset to use when converting arrays of bytes from the
-   * source to a Unicode String (UTF-16).
-   * @return The characters of a line, or NULL if End-of-File, or "" if line was
-   * empty.
-   */
-  public static String readLine(final ByteBuffer mbBuf, final ByteArrayBuilder bab,
-      final Charset charset) {
-    if (!mbBuf.hasRemaining()) {
-      return null;
-    }
-    final ByteArrayBuilder bab1;
-    if (bab == null) {
-      bab1 = new ByteArrayBuilder();
-    } else {
-      bab1 = bab;
-      bab1.setLength(0);
-    }
-    while (mbBuf.hasRemaining()) {
-      final byte b = mbBuf.get();
-      if (b == LF) {
-        break; // EOL
-      }
-      if (b == CR) {
-        if (mbBuf.hasRemaining()) {
-          // peek next byte without moving position
-          if (mbBuf.get(mbBuf.position()) == LF) {
-            mbBuf.get(); // consume it
-          }
-        }
-        break; // EOL
-      }
-      bab1.append(b); // transfer the byte
-    }
-    if (bab1.length() == 0) {
-      if (!mbBuf.hasRemaining()) {
-        return null;
-      }
-      return "";
-    }
-    final byte[] out = bab1.toByteArray();
-    final String s = new String(out, charset);
-    return s;
-  }
-
-  /**
-   * Reads a ByteBuffer (or subclass) with a request for numBytes. The result is
-   * stuffed into the provided byte[] array (required), which must be larger or
-   * equal to numBytes.
-   *
-   * @param bb The ByteBuffer to read from
-   * @param numBytes The requested number of bytes to read.
-   * @param out The target array for the bytes.
-   * @return the actual number of bytes read.
-   * @throws BufferUnderflowException if numBytes is greater than bytes
-   * available in the buffer.
-   */
-  public static int readByteBuffer(final ByteBuffer bb, final int numBytes, final byte[] out) {
-    final int rem = bb.remaining();
-    if (rem == 0) {
-      return 0;
-    }
-    final int nBytes = (rem < numBytes) ? rem : numBytes;
-    bb.get(out);
-    return nBytes;
-  }
-
-  // FileChannel methods
-  /**
-   * Sets the FileChannel position.
-   *
-   * @param fc FileChannel
-   * @param position the position
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static void position(final FileChannel fc, final long position) {
-    try {
-      fc.position(position);
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  /**
-   * Gets the current size of the FileChannel.
-   *
-   * @param fc FileChannel
-   * @return the size in bytes.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static long size(final FileChannel fc) {
-    final long sz;
-    try {
-      sz = fc.size();
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-    return sz;
-  }
-
-  /**
-   * Appends the given string to the end of the file specified via the given
-   * FileChannel. Equivalent to:<br>
-   * append(String, FileChannel, Charset.defaultCharset());
-   *
-   * @param out the string to append
-   * @param fc the given FileChannel
-   * @return the number of bytes actually appended.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int append(final String out, final FileChannel fc) {
-    return append(out, fc, Charset.defaultCharset());
-  }
-
-  /**
-   * Appends the given string to the end of the file specified via the given
-   * FileChannel.
-   *
-   * @param out the string to append
-   * @param fc the given FileChannel
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @return the number of bytes actually appended.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int append(final String out, final FileChannel fc, final Charset charset) {
-    final int bytes;
-    final ByteBuffer bb = ByteBuffer.wrap(out.getBytes(charset));
-    try {
-      bytes = fc.write(bb, fc.size());
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-    return bytes;
-  }
-
-  /**
-   * Appends the given byteArr to the end of the file specified via the given
-   * FileChannel.
-   *
-   * @param byteArr the byte[] to append
-   * @param fc the given FileChannel
-   * @return the number of bytes actually appended.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int append(final byte[] byteArr, final FileChannel fc) {
-    final int bytes;
-    final ByteBuffer bb = ByteBuffer.wrap(byteArr);
-    try {
-      bytes = fc.write(bb, fc.size());
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-    return bytes;
-  }
-
-  /**
-   * Writes the given string out to the file specified via the given FileChannel
-   * starting at the given file position. Equivalent to:<br>
-   * write(String, FileChannel, long, Charset.defaultCharset());
-   *
-   * @param out the given string
-   * @param fc FileChannel
-   * @param position the position
-   * @return the total number of bytes written.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int write(final String out, final FileChannel fc, final long position) {
-    return write(out, fc, position, Charset.defaultCharset());
-  }
-
-  /**
-   * Writes the given string out to the file specified via the given FileChannel
-   * starting at the given file position.
-   *
-   * @param out the given string
-   * @param fc FileChannel
-   * @param position the given position
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @return the total number of bytes written.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int write(final String out, final FileChannel fc, final long position,
-      final Charset charset) {
-    final int bytes;
-    final ByteBuffer bb = ByteBuffer.wrap(out.getBytes(charset));
-    try {
-      bytes = fc.write(bb, position);
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-    return bytes;
-  }
-
-  /**
-   * Writes the given byteArr to the file specified via the given FileChannel at
-   * the given position.
-   *
-   * @param byteArr the byte[] to append
-   * @param fc the given FileChannel
-   * @param position the given position
-   * @return the number of bytes actually appended.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int write(final byte[] byteArr, final FileChannel fc, final long position) {
-    final int bytes;
-    final ByteBuffer bb = ByteBuffer.wrap(byteArr);
-    try {
-      bytes = fc.write(bb, position);
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-    return bytes;
-  }
-
-  // Complete NIO BASED FILE WRITE OPERATIONS
-  /**
-   * Writes the given String text to the fileName using NIO FileChannel.
-   *
-   * @param text Source string to place in a file. Equivalent to: <br>
-   * stringToFileNIO(String, String, Charset.defaultCharset());
-   * @param fileName name of target file
-   * @return the total number of bytes written.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int stringToFileNIO(final String text, final String fileName) {
-    return stringToFileNIO(text, fileName, Charset.defaultCharset());
-  }
-
-  /**
-   * Writes the given String text to the fileName using NIO FileChannel
-   *
-   * @param text Source string to place in a file.
-   * @param fileName name of target file
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @return the total number of bytes written.
-   * @throws RuntimeException if an IOException occurs.
-   */
-  public static int stringToFileNIO(final String text, final String fileName,
-      final Charset charset) {
-    checkFileName(fileName);
-    final File file = new File(fileName);
-    int bytes = 0;
-    if (!file.isFile()) {
-      try {
-        file.createNewFile();
-      } catch (final IOException e) {
-        throw new RuntimeException("Cannot create new file: " + fileName + LS + e);
-      }
-      try (FileChannel fc = openRandomAccessFile(file, "rw").getChannel()) {
-        bytes = write(text, fc, 0L, charset);
-      } catch (final IOException e) {
-        throw new RuntimeException("Cannot create File Channel: " + fileName + LS + e);
-      }
-    }
-
-    return bytes;
-  }
-
-  /**
-   * Appends a String to a file using NIO. If fileName does not exist, this
-   * creates a new empty file of that name. This closes the file after
-   * appending.
-   *
-   * @param text is the source String. Equivalent to: <br>
-   * appendStringToFileNIO(String, String, Charset.defautCharset());
-   * @param fileName the given fileName
-   * @return the total number of bytes written
-   * @throws RuntimeException if IOException or SecurityException occurs, or if
-   * fileName is null or empty.
-   */
-  public static int appendStringToFileNIO(final String text, final String fileName) {
-    return appendStringToFileNIO(text, fileName, Charset.defaultCharset());
-  }
-
-  /**
-   * Appends a String to a file using NIO and a Charset. If fileName does not
-   * exist, this creates a new empty file of that name. This closes the file
-   * after appending.
-   *
-   * @param text is the source String.
-   * @param fileName the given fileName
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @return the total number of bytes written
-   * @throws RuntimeException if IOException or SecurityException occurs, or if
-   * fileName is null or empty.
-   */
-  public static int appendStringToFileNIO(final String text, final String fileName,
-      final Charset charset) {
-    checkFileName(fileName);
-    final File file = new File(fileName);
-    if (!file.isFile()) { // does not exist
-      try {
-        file.createNewFile();
-      } catch (final Exception e) {
-        throw new RuntimeException("Cannot create file: " + fileName + LS + e);
-      }
-    }
-    int bytes = 0;
-    try (FileChannel fc = openRandomAccessFile(file, "rw").getChannel()) {
-      bytes = append(text, fc, charset);
-    } catch (final IOException e) {
-      throw new RuntimeException("Cannot create File Channel: " + fileName + LS + e);
-    }
-    return bytes;
-  }
-
-  // Complete NIO BASED FILE READ OPERATIONS
-  /**
-   * Reads a file into a char array using NIO FileChannel, then closes the file. Useful when
-   * special handling of Line-Separation characters is required. Equivalent to:
-   * <br>
-   * fileToCharArrayNIO(String, Charset.defaultCharset());
-   *
-   * @param fileName the given fileName
-   * @return a char[]
-   * @throws RuntimeException if IOException occurs.
-   * @throws IllegalArgumentException if File size is greater than
-   * Integer.MAX_VALUE.
-   */
-  public static char[] fileToCharArrayNIO(final String fileName) {
-    return fileToCharArrayNIO(fileName, Charset.defaultCharset());
-  }
-
-  /**
-   * Reads a file into a char array using NIO FileChannel, then closes the file. Useful when
-   * special handling of Line-Separation characters is required.
-   *
-   * @param fileName the given fileName
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @return a char[]
-   * @throws RuntimeException if IOException occurs.
-   * @throws IllegalArgumentException if File size is greater than
-   * Integer.MAX_VALUE.
-   */
-  public static char[] fileToCharArrayNIO(final String fileName, final Charset charset) {
-    final File file = getExistingFile(fileName);
-    char[] chArr = null;
-    try (RandomAccessFile raf = openRandomAccessFile(file, "r");
-        FileChannel fc = raf.getChannel()) {
-      final MappedByteBuffer mbBuf = getMappedByteBuffer(fc, READ_ONLY);
-      final long len = size(fc);
-      if (len > Integer.MAX_VALUE) {
-        fc.close();
-        throw new IllegalArgumentException("File size cannot exceed Integer.MAX_VALUE.");
-      }
-      final byte[] in = new byte[(int) len];
-      mbBuf.get(in); // fill the buffer
-      final String out = new String(in, charset);
-      chArr = out.toCharArray();
-    } catch (final IOException e) {
-      throw new RuntimeException("Could not create or close File Channel.");
-    }
-    return chArr;
-  }
-
-  /**
-   * Reads a file into a String using NIO FileChannel. Each line of the file is delimited by
-   * the current operating systems's "line.separator" characters. Closes the
-   * file. This method is equivalent to:<br>
-   * fileToStringNIO(String fileName, Charset.defaultCharset())
-   *
-   * @param fileName given fileName
-   * @return a String
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static String fileToStringNIO(final String fileName) {
-    return fileToStringNIO(fileName, Charset.defaultCharset());
-  }
-
-  /**
-   * Reads a file into a String using NIO FileChannel. Each line of the file is delimited by
-   * the current operating systems's "line.separator" characters. Closes the
-   * file.
-   *
-   * @param fileName given fileName
-   * @param charset The Charset to use when converting arrays of bytes from the
-   * source to a Unicode String (UTF-16).
-   * @return a String
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static String fileToStringNIO(final String fileName, final Charset charset) {
-    final File file = getExistingFile(fileName);
-    final StringBuilder sb = new StringBuilder(1024);
-    try (RandomAccessFile raf = openRandomAccessFile(file, "r");
-        FileChannel fChan = raf.getChannel();) {
-      final MappedByteBuffer mbBuf = getMappedByteBuffer(fChan, READ_ONLY);
-      final ByteArrayBuilder bab = new ByteArrayBuilder();
-
-      String s;
-      while ((s = readLine(mbBuf, bab, charset)) != null) {
-        sb.append(s);
-        sb.append(LS);
-      }
-    } catch (final IOException e) {
-      throw new RuntimeException("Cannot create File Channel.");
-    }
-    return sb.toString();
-  }
-
-  // *******************************
-  // STANDARD IO READER OPERATIONS
-  // *******************************
-  /**
-   * Opens a BufferedReader wrapped around a File. Equivalent to the call<br>
-   * openBufferedReader(file, DEFAULT_BUFSIZE) Rethrows any IOException as a
-   * RuntimeException. The returned object must be closed by the calling program.
-   *
-   * @param file the given file
-   * @return BufferedReader object
-   * @throws RuntimeException if File Not Found.
-   */
-  public static BufferedReader openBufferedReader(final File file) {
-    return openBufferedReader(file, DEFAULT_BUFSIZE, Charset.defaultCharset());
-  }
-
-  /**
-   * Opens a BufferedReader wrapped around a FileReader with a specified file
-   * and buffer size. If bufSize is less than the default (8192) the default
-   * will be used. The returned object must be closed by the calling program.
-   *
-   * @param file the given file
-   * @param bufSize the given buffer size
-   * @return a BufferedReader object
-   * @throws RuntimeException if File Not Found.
-   */
-  public static BufferedReader openBufferedReader(final File file, final int bufSize) {
-    return openBufferedReader(file, bufSize, Charset.defaultCharset());
-  }
-
-  /**
-   * Opens a BufferedReader, which specifies a bufSize, wrapped around an
-   * InputStreamReader, which specifies a Charset. The InputStreamReader wraps a
-   * FileInputStream. If bufSize is less than the default (8192) the default
-   * will be used. If the charset is null, Charset.defaultCharset() will be
-   * used. The returned object must be closed by the calling program.
-   *
-   * @param file the given file
-   * @param bufSize the given buffer size
-   * @param charset the given Charset
-   * @return a BufferedReader object
-   * @throws RuntimeException if FileNotFoundException occurs.
-   */
-  public static BufferedReader openBufferedReader(final File file, final int bufSize,
-      final Charset charset) {
-    final int bufSz = (bufSize < DEFAULT_BUFSIZE) ? DEFAULT_BUFSIZE : bufSize;
-    final Charset cSet = (charset == null) ? Charset.defaultCharset() : charset;
-    BufferedReader in = null; // default bufsize is 8192.
-    try {
-      final FileInputStream fis = new FileInputStream(file);
-      final InputStreamReader isr = new InputStreamReader(fis, cSet);
-      in = new BufferedReader(isr, bufSz);
-    } catch (final FileNotFoundException e) { // from FileInputStream
-      // never opened, so don't close it.
-      throw new RuntimeException(LS + "File Not Found: " + file.getPath() + LS + e);
-    }
-    return in;
-  }
-
-  /**
-   * Configures a file for string writing. If a file by the same name exists, it will be
-   * deleted. If fileName is not fully qualified, it will be relative to the root of this
-   * package. The returned object must be closed by the calling program.
-   * @param fileName the name of the file to configure
-   * @return a PrintWriter
-   */
-  public static final PrintWriter openPrintWriter(final String fileName) {
-    File file = null;
-    PrintWriter pw = null;
-    if ((fileName != null) && !fileName.isEmpty()) {
-      file = new File(fileName);
-      if (file.isFile()) {
-        file.delete(); //remove old file if it exists
-      } else {
-        try {
-          file.createNewFile();
-        } catch (final Exception e) {
-          throw new RuntimeException("Cannot create file: " + fileName + LS + e);
-        }
-      }
-      final BufferedWriter bw;
-      try {
-        final FileOutputStream fos = new FileOutputStream(file, true);
-        final OutputStreamWriter osw = new OutputStreamWriter(fos, Charset.defaultCharset());
-        bw = new BufferedWriter(osw, 8192);
-      } catch (final IOException e) {
-        // never opened, so don't close it.
-        throw new RuntimeException("Could not create: " + file.getPath() + LS + e);
-      }
-      pw = new PrintWriter(bw);
-    }
-    return pw;
-  }
-
-  /**
-   * Tests a Reader object if it is ready.
-   *
-   * @param in the given Reader
-   * @return boolean true if ready.
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static boolean ready(final Reader in) {
-    boolean out = false;
-    try {
-      out = in.ready();
-    } catch (final IOException e) {
-      throw new RuntimeException(LS + "Reader.ready() unsuccessful: " + LS + e);
-    }
-    return out;
-  }
-
-  /**
-   * Skips bytes in the given Reader object.
-   *
-   * @param in the given Reader
-   * @param skipLen in bytes.
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static void skip(final Reader in, final long skipLen) {
-    try {
-      in.skip(skipLen);
-    } catch (final IOException e) {
-      try {
-        in.close();
-      } catch (final IOException f) {
-        throw new RuntimeException(LS + "Close Unsuccessful" + LS + f);
-      }
-      throw new RuntimeException(LS + "Reader.skip(len) unsuccessful: " + LS + e);
-    }
-  }
-
-  /**
-   * Reads characters from the given Reader into the given character array.
-   *
-   * @param in the given Reader
-   * @param length number of characters to read
-   * @param cArr Array must be equal to or larger than length
-   * @return number of characters actually read from Reader
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static int readCharacters(final Reader in, final int length, final char[] cArr) {
-    int readLen = 0;
-    try {
-      readLen = in.read(cArr, 0, length);
-    } catch (final IOException e) {
-      try {
-        in.close();
-      } catch (final IOException f) {
-        throw new RuntimeException(LS + "Close Unsuccessful" + LS + f);
-      }
-      throw new RuntimeException(LS + "Reader.read(char[],0,len) unsuccessful: " + LS + e);
-    }
-    return readLen;
-  }
-
-  /**
-   * Reads a file into a char array, then closes the file. Useful when special
-   * handling of Line-Separation characters is required. Equivalent to: <br>
-   * fileToCharArray(String, int, Charset.defaultCharset());
-   *
-   * @param fileName the given fileName
-   * @return a char[]
-   * @throws RuntimeException if IOException occurs.
-   * @throws IllegalArgumentException if File size is greater than
-   * Integer.MAX_VALUE.
-   */
-  public static char[] fileToCharArray(final String fileName) {
-    return fileToCharArray(fileName, DEFAULT_BUFSIZE, Charset.defaultCharset());
-  }
-
-  /**
-   * Reads a file into a char array, then closes the file. Useful when special
-   * handling of Line-Separation characters is required.
-   *
-   * @param fileName the given fileName
-   * @param bufSize if less than 8192 it defaults to 8192
-   * @param charset The Charset to use when converting arrays of bytes from the
-   * source to a Unicode String (UTF-16).
-   * @return a char[]
-   * @throws RuntimeException if IOException occurs.
-   * @throws IllegalArgumentException if File size is greater than
-   * Integer.MAX_VALUE.
-   */
-  public static char[] fileToCharArray(final String fileName, final int bufSize,
-      final Charset charset) {
-    final File file = getExistingFile(fileName);
-    char[] cArr = null;
-    final long fileLen = (long) (file.length() * 1.1); // 10% headroom
-    if (fileLen > Integer.MAX_VALUE) {
-      throw new IllegalArgumentException(
-          LS + "File Size is too large: " + fileLen + " >" + " Max: " + Integer.MAX_VALUE);
-    }
-    final int len = (int) fileLen;
-    try (BufferedReader in = openBufferedReader(file, bufSize, charset)) {
-      cArr = new char[len];
-      in.read(cArr, 0, len);
-    } catch (final IOException e) { // thrown by read()
-      throw new RuntimeException(LS + "BufferedReader.read(char[],0,len) unsuccessful: " + LS + e);
-    }
-    return cArr;
-  }
-
-  /**
-   * Reads a file into a String. Each line of the file is delimited by the
-   * current operating systems's "line.separator" characters. Closes the file.
-   * Equivalent to: <br>
-   * fileToString(String, 8192, Charset.defaultCharset());
-   *
-   * @param fileName the given fileName
-   * @return a String
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static String fileToString(final String fileName) {
-    return fileToString(fileName, DEFAULT_BUFSIZE, Charset.defaultCharset());
-  }
-
-  /**
-   * Reads a file into a String. Each line of the file is delimited by the
-   * current operating systems's "line.separator" characters. Closes the file.
-   *
-   * @param fileName the given fileName
-   * @param bufSize if less than 8192 it defaults to 8192
-   * @param charset The Charset to use when converting arrays of bytes from the
-   * source to a Unicode String (UTF-16).
-   * @return String
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static String fileToString(final String fileName, final int bufSize,
-      final Charset charset) {
-    final StringBuilder sb = new StringBuilder();
-    final File file = getExistingFile(fileName);
-    try (BufferedReader in = openBufferedReader(file, bufSize, charset)) {
-      String s;
-      while ((s = in.readLine()) != null) {
-        sb.append(s);
-        sb.append(LS);
-      }
-    } catch (final IOException e) { // thrown by readLine()
-      throw new RuntimeException(LS + "BufferedReader.readLine() unsuccessful: " + LS + e);
-    }
-    return sb.toString();
-  }
-
-  // STANDARD IO WRITE OPERATIONS
-  /**
-   * Opens a BufferedWriter wrapped around a FileWriter with a specified file
-   * and buffer size. If bufSize is less than the default (8192) the default
-   * will be used. The returned object must be closed by the calling program.
-   *
-   * @param file the given file
-   * @param bufSize the given buffer size
-   * @param append to existing file if true.
-   * @return BufferedWriter object
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static BufferedWriter openBufferedWriter(final File file, final int bufSize,
-      final boolean append) {
-    return openBufferedWriter(file, bufSize, append, Charset.defaultCharset());
-  }
-
-  /**
-   * Opens a BufferedWriter wrapped around a FileWriter with a specified file
-   * and buffer size. If bufSize is less than the default (8192) the default
-   * will be used. The returned object must be closed by the calling program.
-   *
-   * @param file the given file
-   * @param bufSize if less than 8192 it defaults to 8192.
-   * @param append to existing file if true.
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @return BufferedWriter object
-   * @throws RuntimeException if IOException occurs.
-   */
-  public static BufferedWriter openBufferedWriter(final File file, final int bufSize,
-      final boolean append, final Charset charset) {
-    final int bufSz = (bufSize < DEFAULT_BUFSIZE) ? DEFAULT_BUFSIZE : bufSize;
-    BufferedWriter out = null; // default bufsize is 8192.
-    try {
-      final FileOutputStream fos = new FileOutputStream(file, append);
-      final OutputStreamWriter osw = new OutputStreamWriter(fos, charset);
-      out = new BufferedWriter(osw, bufSz);
-    } catch (final IOException e) {
-      // never opened, so don't close it.
-      throw new RuntimeException(LS + "Could not create: " + file.getPath() + LS + e);
-    }
-    return out;
-  }
-
-  /**
-   * Writes a String to a file using a BufferedWriter. Closes the file.
-   *
-   * @param text is the source String.
-   * @param fileName the given fileName
-   * @throws RuntimeException if IOException occurs or if fileName is null or
-   * empty.
-   */
-  public static void stringToFile(final String text, final String fileName) {
-    stringToFile(text, fileName, DEFAULT_BUFSIZE, Charset.defaultCharset());
-  }
-
-  /**
-   * Writes a String to a file using a BufferedWriter. Closes the file.
-   *
-   * @param text is the source String.
-   * @param fileName the given fileName
-   * @param bufSize if less than 8192 it defaults to 8192.
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @throws RuntimeException if IOException occurs or if fileName is null or
-   * empty.
-   */
-  public static void stringToFile(final String text, final String fileName, final int bufSize,
-      final Charset charset) {
-    checkFileName(fileName);
-    final File file = new File(fileName);
-    try (BufferedWriter bw = openBufferedWriter(file, bufSize, false, charset);
-        PrintWriter out = new PrintWriter(bw);) {
-      out.print(text);
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  /**
-   * Appends a String to a file using a BufferedWriter. If fileName does not
-   * exist, this creates a new empty file of that name. This closes the file
-   * after appending.
-   *
-   * @param text is the source String.
-   * @param fileName the given fileName
-   * @throws RuntimeException if IOException or SecurityException occurs, or if
-   * fileName is null or empty.
-   */
-  public static void appendStringToFile(final String text, final String fileName) {
-    appendStringToFile(text, fileName, DEFAULT_BUFSIZE, Charset.defaultCharset());
-  }
-
-  /**
-   * Appends a String to a file using a BufferedWriter, bufSize and Charset. If
-   * fileName does not exist, this creates a new empty file of that name. This
-   * closes the file after appending.
-   *
-   * @param text is the source String.
-   * @param fileName the given fileName
-   * @param bufSize if less than 8192 it defaults to 8192.
-   * @param charset The Charset to use when converting the source string
-   * (UTF-16) to a sequence of encoded bytes of the Charset.
-   * @throws RuntimeException if IOException or SecurityException occurs, or if
-   * fileName is null or empty.
-   */
-  public static void appendStringToFile(final String text, final String fileName,
-      final int bufSize, final Charset charset) {
-    checkFileName(fileName);
-    final File file = new File(fileName);
-    if (!file.isFile()) { // does not exist
-      try {
-        file.createNewFile();
-      } catch (final Exception e) {
-        throw new RuntimeException("Cannot create file: " + fileName + LS + e);
-      }
-    }
-    try (BufferedWriter bw = openBufferedWriter(file, bufSize, true, charset);
-        PrintWriter out = new PrintWriter(bw);) {
-      out.print(text);
-    } catch (final IOException e) {
-      throw new RuntimeException(e);
-    }
-  }
-}
diff --git a/src/main/java/org/apache/datasketches/docgen/ErrorTables.java b/src/main/java/org/apache/datasketches/docgen/ErrorTables.java
deleted file mode 100644
index 33ea61f..0000000
--- a/src/main/java/org/apache/datasketches/docgen/ErrorTables.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches.docgen;
-
-import static org.apache.datasketches.docgen.MarkDownTable.emitAlignLine;
-import static org.apache.datasketches.docgen.MarkDownTable.emitBoldRow;
-import static org.apache.datasketches.docgen.MarkDownTable.emitRow;
-
-import org.testng.annotations.Test;
-
-/**
- * Builds the error tables for Theta QuickSelect and Alpha sketches.
- * @author Lee Rhodes
- */
-
-public class ErrorTables {
-  static final String LS = System.getProperty("line.separator");
-
-  /**
-   * Builds the QuickSelect error table
-   */
-  @Test
-  public void buildQuickSelectTable() {
-    buildTable(1.0, 4);
-  }
-
-  /**
-   * Builds the Alpha error table
-   */
-  @Test
-  public void buildAlphaTable() {
-    buildTable(.708, 9);
-  }
-
-  private static void buildTable(double factor, int lgKlow) {
-    StringBuilder sb = new StringBuilder();
-    int[] colWidths = {10, 12, 7, 7, 7 };
-    double f = factor; //.708 for Alpha, 1.0 for QuickSelect
-    //the &nbsp; is required on the first line when Col#1 is blank for GitHub to render properly.
-    //MackDown doesn't care.
-    sb.append(emitRow(colWidths, "&nbsp;","#Std Dev:", "1","2","3"));
-    sb.append(emitAlignLine(colWidths, "CCCCC"));
-    sb.append(emitBoldRow(colWidths,"","Conf:", "68.27%","95.45%","99.73%"));
-    sb.append(emitBoldRow(colWidths,"LgK","K", "1 RSE","2 RSE","3 RSE"));
-    for (int lgK = lgKlow; lgK <= 26; lgK++) { //for Alpha start with 9, QuickSelect start with 4
-      String lgKStr = Integer.toString(lgK);
-      sb.append(emitRow(colWidths,lgKStr, k(lgK), rse(lgK, 1, f), rse(lgK,2,f), rse(lgK,3,f)));
-    }
-    println(sb.toString());
-  }
-
-  static String k(int lgK) {
-    int lgk = 1 << lgK;
-    return String.format("%,d", lgk);
-  }
-
-  static String rse(int lgK, int stdDev, double factor) {
-    double k = 1 << lgK;
-    double rse = (stdDev * factor * 100.0) / Math.sqrt(k - 1.0);
-    return String.format("%6.3f%%", rse);
-  }
-
-  static void println(Object o) { System.out.println(o.toString()); }
-
-  static void printf(String fmt, Object ... args) {
-    System.out.printf(fmt, args);
-  }
-
-}
diff --git a/src/main/java/org/apache/datasketches/docgen/MarkDownTable.java b/src/main/java/org/apache/datasketches/docgen/MarkDownTable.java
deleted file mode 100644
index c570fad..0000000
--- a/src/main/java/org/apache/datasketches/docgen/MarkDownTable.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches.docgen;
-
-import static java.lang.Math.max;
-
-/**
- * General purpose MarkDown table generator for GitHub Flavored Markdown.
- * This produces readable source and particularly useful when the data of the
- * table is machine generated.
- * @author Lee Rhodes
- */
-public class MarkDownTable {
-  private static final String LS = System.getProperty("line.separator");
-  private static final int mcw = 7; //min column width
-
-  /**
-   * Emit a table row
-   * @param colWidths integers representing the column widths of each column.
-   * This only makes the markdown source look nice.
-   * @param strings the content of each column
-   * @return the source table row
-   */
-  public static String emitRow(int[] colWidths, String ... strings) {
-    int cols = colWidths.length;
-    if (cols != strings.length) {
-      throw new IllegalArgumentException("Unequal # of columns");
-    }
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < cols; i++) {
-      String s = strings[i];
-      int w = colWidths[i];
-      if (s.isEmpty()) {
-        sb.append(pad(s, max(w, mcw))).append("|");
-      } else {
-        sb.append(pad(s, max(w, mcw))).append("|");
-      }
-    }
-    sb.append(LS);
-    return sb.toString();
-  }
-
-  /**
-   * Emit a table row where all columns are bold face type
-   * @param colWidths integers representing the column widths of each column.
-   * This only makes the markdown source look nice.
-   * @param strings the content of each column
-   * @return the source table row in bold
-   */
-  public static String emitBoldRow(int[] colWidths, String ... strings) {
-    int cols = colWidths.length;
-    if (cols != strings.length) {
-      throw new IllegalArgumentException("Unequal # of columns");
-    }
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < cols; i++) {
-      String s = strings[i];
-      int w = colWidths[i];
-      if (s.isEmpty()) {
-        sb.append(pad(s, max(w, mcw))).append("|");
-      } else {
-        String s2 = "<b>" + s + "</b>";
-        sb.append(pad(s2, max(w, mcw))).append("|");
-      }
-    }
-    sb.append(LS);
-    return sb.toString();
-  }
-
-  /**
-   * Emit the alignment line for GitHub MarkDown tables
-   * @param colWidths the maximum width for each column
-   * @param align a sequence of #columns characters in column order:
-   * "C"=center, "L"=left, "R"=right
-   * @return the alignment line
-   */
-  public static String emitAlignLine(int[] colWidths, String align) {
-    int cols = colWidths.length;
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < cols; i++) {
-      char c = align.charAt(i);
-      int w = colWidths[i];
-      if (c == 'C') {
-        int numDash = max(w - 2, mcw - 2);
-        sb.append(":").append(dupDash(numDash)).append(":|");
-      }
-      else if (c == 'L') {
-        int numDash = max(w - 1, mcw - 1);
-        sb.append(":").append(dupDash(numDash)).append("|");
-      }
-      else {
-        int numDash = max(w - 1, mcw - 1);
-        sb.append(dupDash(numDash)).append(":|");
-      }
-    }
-    sb.append(LS);
-    return sb.toString();
-  }
-
-  private static String dupDash(int num) {
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < num; i++) { sb.append("-"); }
-    return sb.toString();
-  }
-
-  private static String pad(String s, int num) {
-    StringBuilder sb = new StringBuilder();
-    int strLen = s.length();
-    if (strLen >= num) { return s; }
-    sb.append(s);
-    for (int i = 0; i < (num - strLen); i++) {
-      sb.append(" ");
-    }
-    return sb.toString();
-  }
-}
diff --git a/src/main/java/org/apache/datasketches/docgen/TocGenerator.java b/src/main/java/org/apache/datasketches/docgen/TocGenerator.java
deleted file mode 100644
index 84aa626..0000000
--- a/src/main/java/org/apache/datasketches/docgen/TocGenerator.java
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.datasketches.docgen;
-
-import static org.apache.datasketches.Files.openPrintWriter;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.util.Iterator;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.testng.annotations.Test;
-import org.apache.datasketches.Files;
-
-/**
- * @author Lee Rhodes
- */
-public class TocGenerator {
-  private static final String LS = System.getProperty("line.separator");
-  private int level = 0;
-  private PrintWriter pw = null;
-  private String jsonScrFile;
-  private String htmlScriptFile;
-
-  TocGenerator() {} //needed for TestNG
-
-  /**
-   * To create the Table of Contents for the website:
-   * <ol>
-   *  <li>Edit the JSON source file (refereced below) for the structure you want.</li>
-   *  <li>Execute this test.  The result will be placed in the proper location as part of the web
-   *  source.</li>
-   *  <li>Stage the changes and push the web site source to origin.</li>
-   *  <li>Refresh your browser and confirm that the TOC is correct.
-   * </ol>
-   * @author Lee Rhodes
-   */
-    @Test
-    public static void runTocGenerator() {
-      final String jsonSrcFile = "src/main/resources/docgen/toc.json";
-      final String htmlScriptFile = "src/main/resources/docgen/tocScript.html";
-      final String tgtTocFile = "_includes/toc.html";
-      TocGenerator tocgen = new TocGenerator(jsonSrcFile, htmlScriptFile, tgtTocFile);
-      tocgen.readJson();
-    }
-
-  /**
-   * Execute the runTocGenerator above.
-   * @param jsonSrcFile The JSON source file
-   * @param htmlScriptFile The javascript source file
-   * @param tgtTocFile the target toc.html file
-   */
-  public TocGenerator(final String jsonSrcFile, final String htmlScriptFile, final String tgtTocFile) {
-    jsonScrFile = jsonSrcFile;
-    this.htmlScriptFile = htmlScriptFile;
-    if ((tgtTocFile != null) && (!tgtTocFile.isEmpty())) {
-      final File file = new File(tgtTocFile);
-      if (file.exists()) { file.delete(); }
-      pw = openPrintWriter(tgtTocFile);
-    }
-  }
-
-  /**
-   * Reads the JSON source file and the html script file and generates the target toc.html file.
-   */
-  public void readJson() {
-    final StringBuilder sb = new StringBuilder();
-    final String jin = Files.fileToString(jsonScrFile);
-    final JSONObject jo = new JSONObject(jin);
-    final String clazz = jo.getString("class");
-    if (clazz.equals("TOC")) { emitToc(jo, sb); }
-    else if (clazz.equals("Dropdown")) { emitDropdown(jo, sb); }
-    else { emitDoc(jo, sb); }
-    if ((htmlScriptFile != null) && (!htmlScriptFile.isEmpty())) {
-      final String script = Files.fileToString(htmlScriptFile);
-      sb.append(script);
-    }
-    println(sb.toString());
-  }
-
-  /**
-   * Generates an entire toc.html in a StringBuilder
-   * @param toc the input JSON object
-   * @param sb the target StringBuilder
-   */
-  void emitToc(final JSONObject toc, final StringBuilder sb) {
-    sb.append("<!-- Computer Generated File, Do Not Edit! -->").append(LS);
-    sb.append("<link rel=\"stylesheet\" href=\"/css/toc.css\">").append(LS);
-    sb.append("<div id=\"toc\" class=\"nav toc hidden-print\">").append(LS);
-
-    //JSONArray
-    level++;
-    final JSONArray jarr = toc.getJSONArray("array");
-    final Iterator<Object> itr = jarr.iterator();
-    while (itr.hasNext()) {
-      final JSONObject jo = (JSONObject) itr.next();
-      final String clazz = jo.getString("class");
-      if (clazz.equals("Dropdown")) { emitDropdown(jo, sb); }
-      else { emitDoc(jo, sb); }
-    }
-    level--;
-
-    sb.append("</div>").append(LS);
-  }
-
-  /**
-   * Generates a Dropdown object from the input JSON source.
-   * This is a recursive co-routine with the emitDoc() function.
-   * @param dropdn the input JSON
-   * @param sb the target StringBuilder
-   */
-  void emitDropdown(final JSONObject dropdn, final StringBuilder sb) {
-    final String desc = dropdn.getString("desc");
-    final String lowercaseDesc = desc.toLowerCase();
-    final String pId = lowercaseDesc.replace(' ', '-');
-    final String divId = "collapse_" + lowercaseDesc.replace(' ', '_');
-    final String href = "#" + divId;
-    final String indent = indent(level);
-    //paragraph with desc
-    sb.append(LS);
-    sb.append(indent).append("<p id=").append(quotes(pId)).append(">").append(LS);
-    sb.append(indent).append("  ").append("<a data-toggle=\"collapse\" ")
-      .append("class=\"menu collapsed\" href=").append(quotes(href)).append(">")
-      .append(desc).append("</a>").append(LS);
-    sb.append(indent).append("</p>").append(LS);
-    //start dropdown array
-    sb.append(indent).append("<div class=\"collapse\" ").append("id=").append(quotes(divId))
-      .append(">").append(LS);
-
-    //JSONArray
-    level++;
-    final JSONArray jarr = dropdn.getJSONArray("array");
-    final Iterator<Object> itr = jarr.iterator();
-    while (itr.hasNext()) {
-      final JSONObject jo = (JSONObject) itr.next();
-      final String clazz = jo.getString("class");
-      if (clazz.equals("Dropdown")) { emitDropdown(jo, sb); }
-      else { emitDoc(jo, sb); }
-    }
-    level--;
-
-    sb.append(indent).append("</div>").append(LS);
-  }
-
-  /**
-   * Generates a Document object from the input JSON source.
-   * This is a recursive co-routine with the emitDropdown() function.
-   * @param doc the input JSON
-   * @param sb the target StringBuilder
-   */
-  void emitDoc(final JSONObject doc, final StringBuilder sb) {
-    final String dir = doc.getString("dir");
-    final String file = doc.getString("file");
-    final String desc = doc.getString("desc");
-    final boolean pdf = doc.optBoolean("pdf");
-    final String indent = indent(level);
-    sb.append(indent).append("<li><a href=\"");
-    if (dir.equals("ROOT")) { sb.append("/"); }
-    else {
-      final String baseDir = pdf ? "{{site.docs_pdf_dir}}/" : "{{site.docs_dir}}/";
-      sb.append(baseDir);
-      if (!dir.isEmpty()) {
-        sb.append(dir + "/");
-      }
-    }
-    sb.append(file);
-    final String sfx = pdf ? ".pdf" : ".html";
-    sb.append(sfx + "\">");
-    sb.append(desc);
-    sb.append("</a></li>").append(LS);
-  }
-
-  /**
-   * Encases the given string in quotes.
-   * @param s the given string
-   * @return the quoted string
-   */
-  public static String quotes(final String s) {
-    return '"' + s + '"';
-  }
-
-  /**
-   * @param level indention level
-   * @return the indention spaces
-   */
-  public static String indent(final int level) {
-    assert level >= 0;
-    final StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < level; i++) {
-      sb.append("  ");
-    }
-    return sb.toString();
-  }
-
-
-  /**
-   * The JVM may call this method to close the PrintWriter resource.
-   */
-  @Override
-  protected void finalize() throws Throwable {
-    try {
-      if (pw != null) {
-        pw.close(); // close open files
-      }
-    } finally {
-      super.finalize();
-    }
-  }
-
-  /**
-   * Outputs a line to the configured PrintWriter and stdOut.
-   * @param s The String to print
-   */
-  public final void println(final String s) {
-    System.out.println(s);
-    if (pw != null) {
-      pw.println(s);
-      pw.flush();
-    }
-  }
-
-  /**
-   * Flush any buffered output to the configured PrintWriter.
-   */
-  public final void flush() {
-    if (pw != null) { pw.flush(); }
-  }
-
-  /**
-   * Command line access.
-   * @param args three arguments are required:
-   * <ol><li>The JSON source file</li>
-   * <li>The html script file that is appended to the end.</li>
-   * <li>The target toc.html file</li>
-   * </ol>
-   */
-  public static void main(final String[] args) {
-    final String jsonSrcFile = args[0];
-    final String htmlScriptFile = args[1];
-    final String tgtTocFile = args[2];
-    final TocGenerator tocgen = new TocGenerator(jsonSrcFile, htmlScriptFile, tgtTocFile);
-    tocgen.readJson();
-  }
-
-}
diff --git a/src/main/resources/docgen/toc.json b/src/main/resources/docgen/toc.json
deleted file mode 100644
index 7ba42ee..0000000
--- a/src/main/resources/docgen/toc.json
+++ /dev/null
@@ -1,232 +0,0 @@
-{ "class":"TOC", "array":
-  [
-    { "class":"Dropdown", "desc" : "Overview", "array":
-      [
-        {"class":"Doc",  "desc" : "The Challenge",                "dir" : "", "file": "TheChallenge" },
-        {"class":"Doc",  "desc" : "The Major Sketch Families",    "dir" : "", "file": "MajorSketchFamilies" },
-        {"class":"Doc",  "desc" : "Sketch Origins",               "dir" : "", "file": "SketchOrigins" },
-        {"class":"Doc",  "desc" : "Sketch Elements",              "dir" : "", "file": "SketchElements" },
-        {"class":"Doc",  "desc" : "Key Features",                 "dir" : "", "file": "KeyFeatures" },
-        {"class":"Doc",  "desc" : "Large Scale Computing",        "dir" : "", "file": "LargeScale" },
-        {"class":"Doc",  "desc" : "Architecture",                 "dir" : "", "file": "Architecture" },
-        {"class":"Doc",  "desc" : "Notes on Order Sensitivity",   "dir" : "", "file": "OrderSensitivity" },
-        {"class":"Doc",  "desc" : "Notes on Concurrency",         "dir" : "", "file": "Concurrency" },
-        {"class":"Doc",  "desc" : "Overview Slide Deck",          "dir" : "", "file": "DataSketches_deck", "pdf":"true" },
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Research", "array":
-      [
-        {"class":"Doc",  "desc" : "Research",                     "dir" : "", "file": "Research" }
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Distinct Counting", "array":
-      [
-
-        { "class":"Dropdown", "desc" : "HyperLogLog Sketches", "array":
-          [
-            {"class":"Doc",  "desc" : "HLL Sketch",                               "dir" : "HLL", "file": "HLL" },
-            {"class":"Doc",  "desc" : "HLL Map Sketch",                           "dir" : "HLL", "file": "HllMap" },
-            { "class":"Dropdown", "desc" : "HLL Examples", "array":
-              [
-                {"class":"Doc",  "desc" : "HLL Sketch Java Example",              "dir" : "HLL", "file": "HllJavaExample" },
-                {"class":"Doc",  "desc" : "HLL Sketch Pig UDFs",                  "dir" : "HLL", "file": "HllPigUDFs" },
-                {"class":"Doc",  "desc" : "HLL Sketch Hive UDFs",                 "dir" : "HLL", "file": "HllHiveUDFs" },
-                {"class":"Doc",  "desc" : "Using Sketches in Druid",              "dir" : "",    "file": "DruidIntegration" },
-              ]
-            },
-            { "class":"Dropdown", "desc" : "HLL Studies", "array":
-              [
-                {"class":"Doc",  "desc" : "HLL vs HLL++",                         "dir" : "HLL", "file": "Hll_vs_Hllpp" },
-                {"class":"Doc",  "desc" : "HLL Sketch vs Druid HyperLogLogCollector", "dir" : "HLL", "file": "HllSketchVsDruidHyperLogLogCollector" },
-              ]
-            },
-          ]
-        },
-
-        { "class":"Dropdown", "desc" : "Theta Sketches", "array":
-          [
-            { "class":"Doc",  "desc" : "Theta Sketch Framework",            "dir" : "Theta", "file": "ThetaSketchFramework" },
-            
-            { "class":"Dropdown", "desc" : "Theta Examples", "array":
-              [
-                {"class":"Doc",  "desc" : "Concurrent Theta Sketch",          "dir" : "Theta", "file": "ConcurrentThetaSketch" },
-                {"class":"Doc",  "desc" : "Theta Sketch Java Example",        "dir" : "Theta", "file": "ThetaJavaExample" },
-                {"class":"Doc",  "desc" : "Theta Sketch Spark Example",       "dir" : "Theta", "file": "ThetaSparkExample" },
-                {"class":"Doc",  "desc" : "Theta Sketch Pig UDFs",            "dir" : "Theta", "file": "ThetaPigUDFs" },
-                {"class":"Doc",  "desc" : "Theta Sketch Hive UDFs",           "dir" : "Theta", "file": "ThetaHiveUDFs" },
-                {"class":"Doc",  "desc" : "Using Sketches in Druid",          "dir" : "",      "file": "DruidIntegration" },
-              ]
-            },
-            
-            { "class":"Dropdown", "desc" : "KMV Tutorial", "array":
-              [
-                {"class":"Doc",  "desc" : "The Inverse Estimate",           "dir" : "Theta", "file": "InverseEstimate" },
-                {"class":"Doc",  "desc" : "Empty Sketch",                   "dir" : "Theta", "file": "KMVempty" },
-                {"class":"Doc",  "desc" : "First Estimator",                "dir" : "Theta", "file": "KMVfirstEst" },
-                {"class":"Doc",  "desc" : "Better Estimator",               "dir" : "Theta", "file": "KMVbetterEst" },
-                {"class":"Doc",  "desc" : "Rejection Rules",                "dir" : "Theta", "file": "KMVrejection" },
-                {"class":"Doc",  "desc" : "Update V(kth) Rule",             "dir" : "Theta", "file": "KMVupdateVkth" },
-              ]
-            },
-
-            { "class":"Dropdown", "desc" : "Set Operations and P-sampling", "array":
-              [
-                {"class":"Doc",  "desc" : "Set Operations",                 "dir" : "Theta", "file": "ThetaSketchSetOps" },
-                {"class":"Doc",  "desc" : "<i>p</i>-Sampling",              "dir" : "Theta",  "file": "ThetaPSampling" },
-              ]
-            },
-
-            { "class":"Dropdown", "desc" : "Accuracy", "array":
-              [
-                {"class":"Doc",  "desc" : "Basic Accuracy",                 "dir" : "Theta", "file": "ThetaAccuracy" },
-                {"class":"Doc",  "desc" : "Accuracy Plots",                 "dir" : "Theta", "file": "ThetaAccuracyPlots" },
-                {"class":"Doc",  "desc" : "Relative Error Table",           "dir" : "Theta", "file": "ThetaErrorTable" },
-                {"class":"Doc",  "desc" : "SetOp Accuracy",                 "dir" : "Theta", "file": "ThetaSketchSetOpsAccuracy" },
-                {"class":"Doc",  "desc" : "Unions With Different k",        "dir" : "Theta", "file": "AccuracyOfDifferentKUnions" },
-              ]
-            },
-
-            { "class":"Dropdown", "desc" : "Size", "array":
-              [
-                {"class":"Doc",  "desc" : "Theta Sketch Size",                 "dir" : "Theta", "file": "ThetaSize" },
-              ]
-            },
-
-            { "class":"Dropdown", "desc" : "Speed", "array":
-              [
-                {"class":"Doc",  "desc" : "Update Speed",                      "dir" : "Theta", "file": "ThetaUpdateSpeed" },
-                {"class":"Doc",  "desc" : "Merge Speed",                       "dir" : "Theta", "file": "ThetaMergeSpeed" },
-              ]
-            },
-
-            { "class":"Dropdown", "desc" : "Theta Sketch Theory", "array":
-              [
-                {"class":"Doc",  "desc" : "Theta Sketch Framework (PDF)",      "dir" : "",      "file": "ThetaSketchFramework", "pdf":"true" },
-                {"class":"Doc",  "desc" : "Sketch Equations (PDF)",            "dir" : "",      "file": "SketchEquations",      "pdf":"true" },
-                {"class":"Doc",  "desc" : "DataSketches (PDF)",                "dir" : "",      "file": "DataSketches",         "pdf":"true" },
-                {"class":"Doc",  "desc" : "Confidence Intervals Notes",        "dir" : "Theta", "file": "ThetaConfidenceIntervals" },
-                {"class":"Doc",  "desc" : "Merging Algorithm Notes",           "dir" : "Theta", "file": "ThetaMergingAlgorithm" },
-                {"class":"Doc",  "desc" : "Theta References",                  "dir" : "Theta", "file": "ThetaReferences" },
-              ]
-            }
-          ]
-        },
-
-        { "class":"Dropdown", "desc" : "Tuple Sketches", "array":
-          [
-            {"class":"Doc",  "desc" : "Tuple Overview",           "dir" : "Tuple", "file": "TupleOverview" },
-            { "class":"Dropdown", "desc" : "Tuple Examples", "array":
-              [
-                {"class":"Doc",  "desc" : "Tuple Java Example",       "dir" : "Tuple", "file": "TupleJavaExample" },
-                {"class":"Doc",  "desc" : "Tuple Engagement Example", "dir" : "Tuple", "file": "TupleEngagementExample" },
-                {"class":"Doc",  "desc" : "Frequent Distinct Tuples Sketch", "dir" : "Frequency", "file": "FrequentDistinctTuplesSketch" },
-                {"class":"Doc",  "desc" : "Tuple Pig UDFs",           "dir" : "Tuple", "file": "TuplePigUDFs" },
-                {"class":"Doc",  "desc" : "Tuple Hive UDFs",          "dir" : "Tuple", "file": "TupleHiveUDFs" },
-                {"class":"Doc",  "desc" : "Using Sketches in Druid",  "dir" : "",      "file": "DruidIntegration" },
-              ]
-            },
-          ]
-        },
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Most Frequent", "array":
-      [
-        {"class":"Doc",  "desc" : "Frequency Sketches Overview",  "dir" : "Frequency", "file": "FrequencySketchesOverview" },
-
-        { "class":"Dropdown", "desc" : "Frequent Item Sketches", "array":
-          [
-            {"class":"Doc",  "desc" : "Frequent Items Overview",      "dir" : "Frequency", "file": "FrequentItemsOverview" },
-            {"class":"Doc",  "desc" : "Frequent Items Error Table",   "dir" : "Frequency", "file": "FrequentItemsErrorTable" },
-            {"class":"Doc",  "desc" : "Frequent Items References",    "dir" : "Frequency", "file": "FrequentItemsReferences" },
-
-            { "class":"Dropdown", "desc" : "Most Frequent Examples", "array":
-              [
-                {"class":"Doc",  "desc" : "Frequent Items Java Example",  "dir" : "Frequency", "file": "FrequentItemsJavaExample" },
-                {"class":"Doc",  "desc" : "Frequent Items Pig UDFs",      "dir" : "Frequency", "file": "FrequentItemsPigUDFs" },
-                {"class":"Doc",  "desc" : "Frequent Items Hive UDFs",     "dir" : "Frequency", "file": "FrequentItemsHiveUDFs" },
-                {"class":"Doc",  "desc" : "Using Sketches in Druid",              "dir" : "",    "file": "DruidIntegration" },
-              ]
-            },
-          ]
-        },
-
-        { "class":"Dropdown", "desc" : "Frequent Distinct Sketches", "array":
-          [
-            {"class":"Doc",  "desc" : "Frequent Distinct Tuples Sketch", "dir" : "Frequency", "file": "FrequentDistinctTuplesSketch" },
-          ]
-        }
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Quantiles And Histograms", "array":
-      [
-        {"class":"Doc",  "desc" : "Quantiles Overview",                       "dir" : "Quantiles", "file": "QuantilesOverview" },
-        {"class":"Doc",  "desc" : "Quantiles Accuracy and Size",              "dir" : "Quantiles", "file": "QuantilesAccuracy" },
-
-        { "class":"Dropdown", "desc" : "Quantiles Examples", "array":
-          [
-            {"class":"Doc",  "desc" : "Quantiles Sketch Java Example",            "dir" : "Quantiles", "file": "QuantilesJavaExample" },
-            {"class":"Doc",  "desc" : "Quantiles Sketch Pig UDFs",                "dir" : "Quantiles", "file": "QuantilesPigUDFs" },
-            {"class":"Doc",  "desc" : "Quantiles Sketch Hive UDFs",               "dir" : "Quantiles", "file": "QuantilesHiveUDFs" },
-            {"class":"Doc",  "desc" : "Using Sketches in Druid",                  "dir" : "",          "file": "DruidIntegration" },
-          ]
-        },
-        { "class":"Dropdown", "desc" : "Quantiles Studies", "array":
-          [
-            {"class":"Doc",  "desc" : "New KLL sketch and comparison with DoublesSketch", "dir" : "Quantiles", "file": "KLLSketch" },
-            {"class":"Doc",  "desc" : "KLL sketch vs t-digest",                           "dir" : "Quantiles", "file": "KllSketchVsTDigest" },
-            {"class":"Doc",  "desc" : "Druid Approximate Histogram",                      "dir" : "Quantiles", "file": "DruidApproxHistogramStudy" },
-            {"class":"Doc",  "desc" : "Moments Sketch Study",                             "dir" : "Quantiles", "file": "MomentsSketchStudy" },
-            {"class":"Doc",  "desc" : "Quantiles StreamA Study",                          "dir" : "Quantiles", "file": "QuantilesStreamAStudy" },
-          ]
-        },
-        { "class":"Dropdown", "desc" : "Quantiles Sketch Theory", "array":
-          [
-            {"class":"Doc",  "desc" : "Optimal Quantile Approximation in Streams",        "dir" : "", "file": "Quantiles_KLL", "pdf":"true" },
-            {"class":"Doc",  "desc" : "Quantiles References",                             "dir" : "Quantiles", "file": "QuantilesReferences" },
-          ]
-        }
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Sampling", "array":
-      [
-        {"class":"Doc",  "desc" : "Reservoir Sampling",               "dir" : "Sampling", "file": "ReservoirSampling" },
-        {"class":"Doc",  "desc" : "Reservoir Sampling Performance",   "dir" : "Sampling", "file": "ReservoirSamplingPerformance" },
-        {"class":"Doc",  "desc" : "VarOpt Sampling",                  "dir" : "Sampling", "file": "VarOptSampling" },
-
-        { "class":"Dropdown", "desc" : "Sampling Examples", "array":
-          [
-            {"class":"Doc",  "desc" : "Reservoir Sampling Java Example",  "dir" : "Sampling", "file": "ReservoirSamplingJava" },
-            {"class":"Doc",  "desc" : "Reservoir Sampling Pig UDFs",      "dir" : "Sampling", "file": "ReservoirSamplingPigUDFs" },
-            {"class":"Doc",  "desc" : "VarOpt Sampling Java Example",     "dir" : "Sampling", "file": "VarOptSamplingJava" },
-            {"class":"Doc",  "desc" : "VarOpt Sampling Pig UDFs",         "dir" : "Sampling", "file": "VarOptPigUDFs" },
-          ]
-        },
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Memory Package", "array":
-      [
-        {"class":"Doc",  "desc" : "Memory Package",                           "dir" : "Memory", "file": "MemoryPackage" },
-        {"class":"Doc",  "desc" : "Memory Package Performance",               "dir" : "Memory", "file": "MemoryPerformance" },
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Command Line", "array":
-      [
-        {"class":"Doc",  "desc" : "Creating Command Line Executables",  "dir" : "CommandLine", "file": "CommandLine" },
-      ]
-    },
-
-    { "class":"Dropdown", "desc" : "Who Uses", "array":
-      [
-        {"class":"Doc",  "desc" : "Who Uses",                           "dir" : "",            "file": "WhoUses" },
-      ]
-    },
-  ]
-}
-
diff --git a/src/main/resources/docgen/tocScript.html b/src/main/resources/docgen/tocScript.html
deleted file mode 100644
index 8a5ec35..0000000
--- a/src/main/resources/docgen/tocScript.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<script>
-  (function () {
-
-    var findLineItem = function (path) {
-      return document.querySelector(`[href="${path}"]`);
-    };
-
-    var highlighLineItem = function (element) {
-      element.classList.add('highlight');
-    };
-
-    var checkHasClass = function (element, className) {
-      return element.className.split(' ').find(function (item) { return item === className || '' })
-    }
-
-    var findAllCollapseParents = function (element) {
-      var collapseMenus = [];
-      var elementPointer = element;
-      while (elementPointer !== document.body) {
-        if (checkHasClass(elementPointer, 'collapse')) {
-          collapseMenus.push(elementPointer);
-        }
-        elementPointer = elementPointer.parentElement
-      }
-      return collapseMenus
-    };
-
-    var findMatchingCollapseMenu = function (collapseItem) {
-      return document.querySelector(`[href="#${collapseItem.id}"]`);
-    };
-
-    var findAllParentMenus = function (element) {
-      var parentMenus = []
-      var elementPointer = element;
-      while (elementPointer !== document.body) {
-        if (elementPointer.className.split(' ').indexOf('menu') > -1) {
-          parentMenus.push(elementPointer);
-        }
-        elementPointer = elementPointer.parentElement;
-      }
-      return parentMenus;
-    }
-
-    var openMenuItem = function (element) {
-      element.click();
-    };
-
-    var openAllFromList = function (elementList) {
-      elementList.forEach(function (element) {
-        console.log(element)
-        openMenuItem(findMatchingCollapseMenu(element))
-      });
-    };
-
-    var highlightAndOpenMenu = function () {
-      var currentLineItem = findLineItem(document.location.pathname);
-      highlighLineItem(currentLineItem)
-      openAllFromList(findAllCollapseParents(currentLineItem));
-    };
-
-    $(highlightAndOpenMenu);
-
-  }());
-</script>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org