add DataModel optional Protocol