some domain refactoring.