Initial update after v3 re-write.