discussion refactor