add limited size cache