Initial commit (model + repo interface)