First commit of changes to restructure the puppet module into many classes that may work together