Added lots of documentation, and edited README