commited with chain of responsibility pattern