creating models.  not tested