a little domain refactoring