http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.htmlhtml
https://en.wikipedia.org/wiki/Chain-of-responsibility_patternjava
https://dzone.com/articles/rulebook-a-simple-rules-engine-that-leverages-javahtm