add faster power function