rename exists to defined errors
groups and nested groups
optional group