Added much more detail to the documentation