Switched to BigInteger to support greater range of numbers