I think that just about sums up the API, requesting comments from everyone before I start implementing it.