Added lots of doc