Reworked the documentation quite a bit