add 2-level cache mechanism