Syntax / Formatting fixes + Make more generic and flexible

I've cleaned up the formatting on this, and change the syntax to be more in-line with puppet best-practices. I've also tried to make it more flexible to support a wider audience.

Let me know what you think!

Thanks,

- Josh