added throws to all the power()