codegenerating atm