article controller refactor