rewrote generator to be more pointery, better docs, fixed concat()