support for optional properties