added more code gens
enhanced code