yet more exponentiation code