Sadly no native 128bit integer support in Java 11 so resorting to using BigInteger. Added/improved unit tests to cover.