[#19] further code refactor for the article class