 http://www.sitepoint.com/introduction-to-chain-of-responsibility/