Changed some stuff, too many changes to try and document. Almost done.