finish model adjust refactor