A lot of documentation + A few superficial edits to keep the api consistent