chain of responsibility
commit responsibility again!
add some pattern!
add the rest pattern!
add the rest pattern!