add MapPropertyModel to support MapModel