Refactored BigInteger