generation form