SOLID Principles: Introducing Software Architecture & Design