Added code for SOLID principles