first introduction to OOP