add caches, change DatabaseHelper