I have done Zozo's in St. Johns, amazing food, great atmosphere, but pricey. It's on a resort from a converted sugar cane farm. When I go I take the taxi to Red Hook, then ferry to Cruz Bay, much more reliable, its 12 bucks I think. Watch out for the cabbies, they love to rip off tourists, it's a set rate between the airport and Red Hook, if you just have your backpack keep it with you, if they touch a bag they charge you another 5 bucks or so, then expect a tip. Snorkeling, diving, beautiful water!