work in progress
cache and fix broken count