http://www.tuxradar.com/answers/391
Anonymous
Separate policy from mechanism, separate interfaces from engines.