http://www.kylesterry.plus.com/blog/2006/10/11/mot_the_hard_way_part_2/function.require