implement pow