energy function upgrade