updated form generator