topic refactor