Added lots of docs