never use the pow function