SOLID Principles in OOP