Tag index

Just starting on this, not for merging yet, but feedback welcome.
i would suggest changing this to return a `bool` and not accept `*testing.T` at all. Then you can keep your `t.Fatal()` in your testing flow.