before diving into oops models