add support for defaultValue