diff --git a/pom.xml b/pom.xml
index d6cbca3..6c7681d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,7 +82,12 @@
edu.ucar
grib
- 4.3.19
+ 8.0.29
+
+
+ edu.ucar
+ netcdf4
+ 4.5.5
diff --git a/src/assembly/assembly.xml b/src/assembly/assembly.xml
index d04eeb5..f22996a 100644
--- a/src/assembly/assembly.xml
+++ b/src/assembly/assembly.xml
@@ -1,7 +1,8 @@
-
-
+
assembly
diff --git a/src/main/java/net/nullschool/grib2json/Grib2Json.java b/src/main/java/net/nullschool/grib2json/Grib2Json.java
index 8df9569..a2734d5 100644
--- a/src/main/java/net/nullschool/grib2json/Grib2Json.java
+++ b/src/main/java/net/nullschool/grib2json/Grib2Json.java
@@ -1,21 +1,26 @@
package net.nullschool.grib2json;
+import static java.util.Collections.singletonMap;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.List;
+import javax.json.Json;
+import javax.json.stream.JsonGenerator;
+import javax.json.stream.JsonGeneratorFactory;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import ucar.grib.grib2.*;
+import ucar.grib.grib2.Grib2Data;
+import ucar.grib.grib2.Grib2Input;
+import ucar.grib.grib2.Grib2Record;
import ucar.nc2.NetcdfFile;
import ucar.unidata.io.RandomAccessFile;
-import javax.json.Json;
-import javax.json.stream.JsonGenerator;
-import javax.json.stream.JsonGeneratorFactory;
-import java.io.*;
-import java.util.*;
-
-import static java.util.Collections.*;
-
/**
* 2013-10-25
*
diff --git a/src/main/java/net/nullschool/grib2json/GribRecordWriter.java b/src/main/java/net/nullschool/grib2json/GribRecordWriter.java
index 03c67b2..a2bd2f1 100644
--- a/src/main/java/net/nullschool/grib2json/GribRecordWriter.java
+++ b/src/main/java/net/nullschool/grib2json/GribRecordWriter.java
@@ -1,17 +1,27 @@
package net.nullschool.grib2json;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import ucar.grib.grib2.*;
+import static ucar.grib.GribNumbers.BIT_5;
+import static ucar.grib.GribNumbers.isBitSet;
+import static ucar.grib.grib1.Grib1Tables.getCenter_idName;
+import static ucar.grib.grib2.Grib2Tables.codeTable3_1;
+import static ucar.grib.grib2.Grib2Tables.codeTable3_2;
+import static ucar.grib.grib2.Grib2Tables.codeTable4_0;
+import static ucar.grib.grib2.Grib2Tables.codeTable4_3;
+import static ucar.grib.grib2.Grib2Tables.codeTable4_5;
+import static ucar.grib.grib2.ParameterTable.getCategoryName;
+import static ucar.grib.grib2.ParameterTable.getParameterName;
+import static ucar.grib.grib2.ParameterTable.getParameterUnit;
-import javax.json.stream.JsonGenerator;
import java.io.IOException;
-
-import static ucar.grib.grib1.Grib1Tables.*;
-import static ucar.grib.grib2.Grib2Tables.*;
-import static ucar.grib.grib2.ParameterTable.*;
-import static ucar.grib.GribNumbers.*;
-
+import javax.json.stream.JsonGenerator;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import ucar.grib.grib2.Grib2Data;
+import ucar.grib.grib2.Grib2GDSVariables;
+import ucar.grib.grib2.Grib2IdentificationSection;
+import ucar.grib.grib2.Grib2IndicatorSection;
+import ucar.grib.grib2.Grib2Pds;
+import ucar.grib.grib2.Grib2Record;
/**
* 2013-10-25
*
diff --git a/src/main/java/net/nullschool/grib2json/Launcher.java b/src/main/java/net/nullschool/grib2json/Launcher.java
index 70ac8e9..2b9c134 100644
--- a/src/main/java/net/nullschool/grib2json/Launcher.java
+++ b/src/main/java/net/nullschool/grib2json/Launcher.java
@@ -10,8 +10,10 @@
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
-import java.util.*;
-
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
/**
* 2013-10-24
diff --git a/src/main/java/net/nullschool/grib2json/OscarRecordWriter.java b/src/main/java/net/nullschool/grib2json/OscarRecordWriter.java
index 19832a3..8f8f307 100644
--- a/src/main/java/net/nullschool/grib2json/OscarRecordWriter.java
+++ b/src/main/java/net/nullschool/grib2json/OscarRecordWriter.java
@@ -1,19 +1,21 @@
package net.nullschool.grib2json;
-import org.joda.time.DateTime;
-import org.joda.time.DateTimeZone;
-import ucar.ma2.*;
-import ucar.nc2.Variable;
-
-import javax.json.JsonValue;
-import javax.json.stream.JsonGenerator;
-import java.io.IOException;
-
-import static ucar.grib.grib2.Grib2Tables.*;
+import static ucar.grib.grib2.Grib2Tables.codeTable3_2;
+import static ucar.grib.grib2.Grib2Tables.codeTable4_5;
import static ucar.grib.grib2.ParameterTable.getCategoryName;
+import static ucar.grib.grib2.ParameterTable.getDisciplineName;
import static ucar.grib.grib2.ParameterTable.getParameterName;
import static ucar.grib.grib2.ParameterTable.getParameterUnit;
-import static ucar.grib.grib2.ParameterTable.getDisciplineName;
+
+import java.io.IOException;
+import javax.json.JsonValue;
+import javax.json.stream.JsonGenerator;
+import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
+import ucar.ma2.Array;
+import ucar.ma2.IndexIterator;
+import ucar.ma2.InvalidRangeException;
+import ucar.nc2.Variable;
/**