Stick the puppet master into the main machine loop.

This reduces code duplication, and unnecessary uniqueness, while
preserving the dynamic nature of the 'puppet' variable.