Warren, It seems like you might be running afoul of the autoloader. It expects that within the module path, each module has a certain layout - the class ntp is defined in ntp/manifests/init.pp, etc. if you place that in a directory called module2, puppet will not find it, since it expects module2/manifests/init.pp to contain the module2 class. That's my first guess, but it could be that you obfuscated your paths and did not call it module_name2 on disk but mas_shared_mas_menu as the error indicated, difficult to tell from here. Let us know if that helps!