Note: My first attempt at posting this had issues. A revised version is available here:

http://wp.me/p3VP2c-2o