Many many changes, finish up documentation, mostly