Completely reworked the documentation