added file based configuration
integrated template engine
minor reformattings
moved invocation logic into abstract class