Moved to BigInteger based implementation