Initial checkin, very much a work in progress.