added tag capability, all passing