preliminary custom field support

This works for field setting, but is incomplete. Releasable as-is. Thanks!