Add chain of responsibility pattern