got some caching to work and drastically better perf but still bad