initial TLV refactor