Computer Science Design Patterns/Chain of responsibility