finish rewrite mvp