form generation works