added protocol for Models
+ add carmine (with some regrets)
+ use carmine to save user model