code for my michael-whelan.net blog