Documentation

This documentation is not complete. Actually I've barely started it. I'll expand it gradually as I have time.