introducing Domain interface