Field Groups Containers

Field Groups Containers

I am building a large form and would like to organize the fields into groups with headings for each group.

Example:
=== Contact Information ===
|field|Name|/field|
|field|City|/field|
|field|State|/field|
|field|Address|/field|
|field|Postal Code|/field|
|field|Phone|/field|
====================

=== Personal Interests ====
|field|Favorite Food|/field|
|field|Favorite Movie|/field|
|field|Hobbies|/field|
====================

=== Misc ==============
|field|Website|/field|
|field|Photo|/field|
|field|Etc.|/field|
====================


I want all these fields to be part of the same data table. Also, it would be good if I could show and hide certain "Groups" based on criteria in the form.