support for optional and mandatory settings