use ket-value instead of array