Implement the basic domain classes