moved integer exponentiation into a separate namespace
hidden 'private' functions