add my own pow function