#8 Rewrote almost complete documentation.