Made Tag an interface, moved static methods to new TagFactory class