First stage for Puppet support [Rebased #83]

just rebased #83 onto master. Passes tests now.