Most work on calculating the taxonomy data so we can filter effectively