Arbitrary precision implemented