Add SOLID Principles challenge