v3 API

This should be pretty close, just had trouble testing a few small things like language/location support.  Hope it's helpful, if not it was fun hacking on it :)