checking in a new define generator; not generic enough to be useful outside of my usecase