[new model] implement more of it