simple GreatCircle implementation