Add more tag types, refactor tests