~~ fix and cache