OOP fundamentals