diff --git a/.gitignore b/.gitignore
index 6143e53..387be2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,17 @@
+# Eclipse project files
+.classpath
+.project
+.settings/
+.checkstyle
+
+# IntelliJ project files
+*.iml
+*.ipr
+*.iws
+
+# OSX files
+.DS_Store
+
 # Compiled class file
 *.class
 
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..4d2d52c
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,54 @@
+Apache License
+
+Version 2.0, January 2004
+
+https://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:
+
+    You must give any other recipients of the Work or Derivative Works a copy of this License; and
+    You must cause any modified files to carry prominent notices stating that You changed the files; and
+    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
+    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
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c5d9211
--- /dev/null
+++ b/README.md
@@ -0,0 +1,25 @@
+[![][travis img]][travis] [![][mavenbadge img]][mavenbadge] [![codecov](https://codecov.io/gh/DataSketches/sketches-vector/branch/master/graph/badge.svg)](https://codecov.io/gh/DataSketches/sketches-vector)
+
+[![][gitter img]][gitter]
+
+=================
+
+# Sketches Vector Library
+
+## [Documentation](https://datasketches.github.io)
+
+<!--## [Latest Release](https://github.com/DataSketches/sketches-vector/releases)-->
+
+## [Comments](https://groups.google.com/forum/#!forum/sketches-user)
+
+## [Building](https://github.com/DataSketches/sketches-vector/blob/master/README_building.md)
+
+
+[travis]:https://travis-ci.org//DataSketches/sketches-core/builds?branch=master
+[travis img]:https://secure.travis-ci.org/DataSketches/sketches-core.svg?branch=master
+
+[mavenbadge]:https://search.maven.org/#search|gav|1|g%3A%22com.yahoo.datasketches%22%20AND%20a%3A%22sketches-vector%22
+[mavenbadge img]:https://maven-badges.herokuapp.com/maven-central/com.yahoo.datasketches/sketches-vector/badge.svg
+
+[gitter]:https://gitter.im/DataSketches/sketches-vector
+[gitter img]:https://img.shields.io/badge/gitter-JOIN%20CHAT-blue.svg
diff --git a/README_building.md b/README_building.md
new file mode 100644
index 0000000..dee7a6c
--- /dev/null
+++ b/README_building.md
@@ -0,0 +1,74 @@
+
+
+## Building sketches-core
+Use Apache Maven 3.0 to build this project
+
+### Requires JDK8
+DataSketches sketches-vector leverages new API methods introduced with JDK8.
+JDK7 is no longer supported.
+
+
+### Basic Build
+    mvn clean install
+
+### Build including source and javadoc jars
+    mvn -P release-profile clean install
+
+#### Mac install
+To install you will need GnuPG which is not configured by default on Macs.
+
+    brew install gnupg
+    gpg --gen-key
+
+Then, follow instructions to create keys.
+
+To install Homebrew
+    
+    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+
+### Release build, incrementing the version number and publishing to maven central repository
+
+#### Prepare a release
+First, "prepare" a release. Preparing a release ensures you have no checked out file and no SNAPSHOT dependencies.
+It changes the version in all pom.xml files to the release version. It then runs all the tests. If everything passes,
+the release version is committed to the SCM system and tagged. The version number is then updated in all the pom.xml 
+files again, this time to the next development version. Finally, the changes are committed again to the SCM repository.
+
+    mvn release:prepare
+
+1. ensure you have **no** uncommitted files in your workspace. Ideally, use a fresh workspace for the release process.
+2. Answer the prompts with appropriate values for the tag, version, and new development version
+    - release version should be something like 1.0.1
+    - development version should be something like 1.0.2-SNAPSHOT
+    - tag should be something like sketches-vector-1.0.1
+3. If the prepare has an error (the build will fail if any tests fail), run 'mvn release:clean' to clean up the 
+generated files and reset the workspace. If the prepare needs to be rolled back (undone in the SCM system), run 'mvn release:rollback'.
+
+See https://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html for more info.
+
+#### Perform a release:
+Next, "perform" a release. Performing a release checks out the tagged release from the SCM system into a new directory,
+builds it, and then runs the configured deploy goals to publish the release to a maven repository (Maven central). Performing
+a release automatically enables the `release-profile` in maven, causing source and javadoc jars to be automatically created 
+and published.
+
+    mvn release:perform
+
+You can add the '-DdryRun=true' option to test the release process without actually generating a release. dryRun is 
+supported on both the prepare and perform steps.
+
+See https://maven.apache.org/maven-release/maven-release-plugin/examples/perform-release.html for more info.
+
+#### Rollback a release
+If a release has been prepared but not performed yet, the release can be rolled back. Rolling back a release resets
+the pom.xml version numbers and tags in the SCM system, effectively nullifying the release.
+
+    mvn release:rollback
+
+A release cannot be rolled back if it has already been cleaned up (the release.properties file and other metadata removed).
+
+#### Clean a release
+If a release fails to prepare or crashs, it can leave various files behind. These can be cleaned up with a release clean.
+
+    mvn release:clean
+
diff --git a/src/main/java/com/yahoo/sketches/decomposition/package-info.java b/src/main/java/com/yahoo/sketches/decomposition/package-info.java
index b51f02d..61d9ffd 100644
--- a/src/main/java/com/yahoo/sketches/decomposition/package-info.java
+++ b/src/main/java/com/yahoo/sketches/decomposition/package-info.java
@@ -11,4 +11,4 @@
  * <p>These sketches are mergeable and can be serialized and deserialized to/from a compact
  * form.</p>
  */
-package com.yahoo.sketches.decomposition;
\ No newline at end of file
+package com.yahoo.sketches.decomposition;
diff --git a/src/main/java/com/yahoo/sketches/matrix/MatrixImplOjAlgo.java b/src/main/java/com/yahoo/sketches/matrix/MatrixImplOjAlgo.java
index 590002b..af81132 100644
--- a/src/main/java/com/yahoo/sketches/matrix/MatrixImplOjAlgo.java
+++ b/src/main/java/com/yahoo/sketches/matrix/MatrixImplOjAlgo.java
@@ -123,7 +123,7 @@
     final int preLongs = 3;
 
     // for non-compact we can do an array copy, so save as non-compact if using the entire matrix
-    final long numElements = numRows * numCols;
+    final long numElements = (long) numRows * numCols;
     final boolean isCompact = numElements < mtx_.count();
     if (!isCompact) {
       return toByteArray();
diff --git a/src/main/java/com/yahoo/sketches/matrix/package-info.java b/src/main/java/com/yahoo/sketches/matrix/package-info.java
index ec7459c..7d0924e 100644
--- a/src/main/java/com/yahoo/sketches/matrix/package-info.java
+++ b/src/main/java/com/yahoo/sketches/matrix/package-info.java
@@ -11,4 +11,4 @@
  *
  * <p>These Matrix objects can be serialized and deserialized to/from a compact form.</p>
  */
-package com.yahoo.sketches.matrix;
\ No newline at end of file
+package com.yahoo.sketches.matrix;
diff --git a/src/main/java/com/yahoo/sketches/package-info.java b/src/main/java/com/yahoo/sketches/package-info.java
new file mode 100644
index 0000000..80605d0
--- /dev/null
+++ b/src/main/java/com/yahoo/sketches/package-info.java
@@ -0,0 +1,11 @@
+/*
+ * Copyright 2017, Yahoo! Inc.
+ * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root
+ * for terms.
+ */
+
+/**
+ * This is the parent package for all vector sketch algorithms. Any classes at this level are
+ * used by more than one sub-package.
+ */
+package com.yahoo.sketches;
