We should keep Puppet separate for now.  It definitely needs fixing, but we should do it as a separate module I think.