feat(model): add basic model