add power modulating function