starting to implement cache