updated without kx