model & repo