switch to long instead of bignum