add chain of responsibility pattern
update notes