THIS IS WORK IN PROGRESS!!

It is possible the API will change a lot, so don't except anything.