implement cache parser