power functions added