remake lại theo MVC