I'll need to tackle this sooner or later. Hopefully the API hasn't changed too much this time around...