refactor article models