http://www.michaelhamrah.com/blog/2006/11/declarative-progamming-with-aspnet-20.html