Cache sort of works but isn't perfect.