add exponetiation from sicp