cache input