power function added