Change tabs to spaces in the source code
For the basic API and basic chunks, separate declarations from definitions and add documentation
Separate declarations from definitions and document the library