Very much a work in progress still, but here goes.