Refactor puppet

integrating part of rockage changes into master
this refactors some of the puppet stuff into it's own defines