http://www.friday.com/bbum/2009/08/29/basic-blocks/