Tightened up and genearlized the new tags API