Support puppet enterprise

Rebased!