adding "templating" to allow for creating new instances of the same modules with minimal overhead