Object-Oriented Programming (classes, objects, inheritance)