What are the core concepts of Object-Oriented Programming (OOP), and how do you apply them to your automation framework?