use pow instead of ^