convert BaseModel into provider
Add direct annotations