design pattern

chain of responsibility