refactored articles module