refactor article controller