staring to implement cache