added dual cachinng