why oh why do the funnest software constructs also have to be the ones which introduce the most bugs?