Tag index

Just starting on this, not for merging yet, but feedback welcome.
Yeah, that's what it's currently using.