3.0 formhelper

Ongoing work for #2267