add abstract cache businesslayer