Enhancements for sub-assemblies, separate templates and updated tests

The template could be empty. When I wrote the code I chose to not load an empty template. But I now think we may want to discuss this.

If the template is empty then what would the code get? But if the developer is expecting the template to be there and I don't set the variable, then they would get undefined instead of "".

Any strong opinions?