refactor newsagent