restructure everything to be more like a node module; generate different kinds of templates