feat(models): add DRY model creation templates
feat(models): implement all models