Topics 3 refactor start