added basic Template abstract class to hold the template data and related options