caching finally works. tuning needed now