model abstraction continues...