implement repo, + model auto validation