added exponentiation