Added docs
Added docs and a generation script