Software_Maintainance_Assignment Used design patterns and SOLID design principles to refctor an old code and implement a simple notification system functionality