Chain of Responsibility Design Pattern is processing client or sender requests through a chain of handlers. On the receiving side, there is a chain of handlers that handle different types of requests