Using ^ for pow is a terrible idea (low precedence!)