add generator and some docs