http://www.eaipatterns.com/toc.html