add puppetforge modules (lot of code there) and minor refactoring