added base class to act as an interface for different types of tag files